From paul.sandoz at oracle.com Tue Oct 1 00:34:29 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 1 Oct 2013 09:34:29 +0200 Subject: Collection.toArray(IntFunction) In-Reply-To: <524A6466.6060004@gmail.com> References: <51A6FFFD.80707@gmail.com> <524A6466.6060004@gmail.com> Message-ID: <4D48B7B5-38DA-4561-9697-DC0F92248698@oracle.com> On Oct 1, 2013, at 7:57 AM, Peter Levart wrote: > On 05/30/2013 10:34 AM, Paul Sandoz wrote: >>> > default T[] toArray(IntFunction arrayFactory) { >>> > return toArray(arrayFactory.apply(size())); >>> > } >>> > >> This was previously discussed in the lambda EG. It was definitely recognised that the current Collection.toArray methods "stink" and we did not want to propagate the smell to Stream. We got to the point of sorting this out on Stream and suggested after that it may be worth propagating back to Collection but i think it got lost in the noise of other stuff. I will raise this with the EG. >> >> > > Hi, > > Is this still on the menu or we're out of luck? > Most likely the latter. I am still for it, but we never got full consensus and it was small enough that we got distracted by other larger things. Paul. From stephane.demurget at free.fr Tue Oct 1 01:02:49 2013 From: stephane.demurget at free.fr (stephane.demurget at free.fr) Date: Tue, 1 Oct 2013 10:02:49 +0200 (CEST) Subject: Collection.toArray(IntFunction) In-Reply-To: <4D48B7B5-38DA-4561-9697-DC0F92248698@oracle.com> Message-ID: <2020871447.152121548.1380614569683.JavaMail.root@zimbra32-e6.priv.proxad.net> hi, I suppose it's not the problem, but would a patch help with the decision? Or is this only the matter of actually discussing it in the EG? --St?phane ----- Mail original ----- > De: "Paul Sandoz" > Cc: lambda-dev at openjdk.java.net > Envoy?: Mardi 1 Octobre 2013 09:34:29 > Objet: Re: Collection.toArray(IntFunction) > > > On Oct 1, 2013, at 7:57 AM, Peter Levart > wrote: > > > On 05/30/2013 10:34 AM, Paul Sandoz wrote: > >>> > default T[] toArray(IntFunction arrayFactory) { > >>> > return toArray(arrayFactory.apply(size())); > >>> > } > >>> > > >> This was previously discussed in the lambda EG. It was definitely > >> recognised that the current Collection.toArray methods "stink" > >> and we did not want to propagate the smell to Stream. We got to > >> the point of sorting this out on Stream and suggested after that > >> it may be worth propagating back to Collection but i think it got > >> lost in the noise of other stuff. I will raise this with the EG. > >> > >> > > > > Hi, > > > > Is this still on the menu or we're out of luck? > > > > Most likely the latter. I am still for it, but we never got full > consensus and it was small enough that we got distracted by other > larger things. > > Paul. > > > From paul.sandoz at oracle.com Tue Oct 1 01:12:05 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 1 Oct 2013 10:12:05 +0200 Subject: Collection.toArray(IntFunction) In-Reply-To: <2020871447.152121548.1380614569683.JavaMail.root@zimbra32-e6.priv.proxad.net> References: <2020871447.152121548.1380614569683.JavaMail.root@zimbra32-e6.priv.proxad.net> Message-ID: On Oct 1, 2013, at 10:02 AM, stephane.demurget at free.fr wrote: > hi, > > I suppose it's not the problem, but would a patch help with the decision? No, thanks for the offer though, the code and testing is the easy part :-) > Or is this only the matter of actually discussing it in the EG? > It was already discussed (twice in fact), we just never reached "closure". The cut off point for API changes is very close and the bar is rising rapidly for getting changes in and we have other stuff to do as well so it is really a matter of prioritisation, and I consider this to be lower down the priority list compared to other stuff (mainly related to updating the documentation/spec). Paul. From paul.sandoz at oracle.com Tue Oct 1 01:39:09 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 1 Oct 2013 10:39:09 +0200 Subject: easier work with collections: default Stream.toList? In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC6DFD@HQMBX5.eur.ad.sag> References: <1611635630.146425623.1380359524320.JavaMail.root@zimbra32-e6.priv.proxad.net> <1851075097.146442211.1380360089359.JavaMail.root@zimbra32-e6.priv.proxad.net> <70B6EA9B-9032-4362-B3D5-B68BBAAFFA12@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FC6DFD@HQMBX5.eur.ad.sag> Message-ID: <4F289604-A420-44F0-A871-B1155388BDFB@oracle.com> On Sep 30, 2013, at 1:41 PM, "Millies, Sebastian" wrote: > I would count myself a medium experienced user (I've been practicing using the new constructs in Java 8 > from time to time for about half a year). I must say I'd value the purity of the stream interface much higher. That would be my experience too both as an implementor and a user, but that admits to a bias on my part :-) The IDEs are quite proficient at working out the static imports. Paul. > I think it's important to look beyond the current release to what may happen farther away in the future. > Tying streams to that horrible old API seems like a really bad idea to me. And what with IDE support and > static imports, I can't say there'd be much of a conciseness advantage that would pay for the pollution. > > -- Sebastian From Sebastian.Millies at softwareag.com Tue Oct 1 01:53:19 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Tue, 1 Oct 2013 08:53:19 +0000 Subject: API freeze date (was RE: Collection.toArray(IntFunction)) Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7287@HQMBX5.eur.ad.sag> a quick question just for info: exactly when is the API freeze date? And will a new milestone build be released then? That would be very handy for getting people in my organization ramped up. It's kind of awkward telling them they have to learn that stuff, and then having to admit the ground may still shift under their feet. -- Sebastian -----Original Message----- From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Paul Sandoz Sent: Tuesday, October 01, 2013 10:12 AM Cc: lambda-dev at openjdk.java.net Subject: Re: Collection.toArray(IntFunction) [snip] The cut off point for API changes is very close and the bar is rising rapidly for getting changes in and we have other stuff to do as well so it is really a matter of prioritisation, and I consider this to be lower down the priority list compared to other stuff (mainly related to updating the documentation/spec). Paul. Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From paul.sandoz at oracle.com Tue Oct 1 02:23:04 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 1 Oct 2013 11:23:04 +0200 Subject: API freeze date (was RE: Collection.toArray(IntFunction)) In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7287@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7287@HQMBX5.eur.ad.sag> Message-ID: <53E831BB-F76A-4CB1-A1EE-801B491E87B9@oracle.com> Hi, See here for the schedule: http://openjdk.java.net/projects/jdk8/milestones I presume EA builds [1] will proceed regularly on 1 to 2 week basis for M8. On Oct 1, 2013, at 10:53 AM, "Millies, Sebastian" wrote: > a quick question just for info: exactly when is the API freeze date? And will a new milestone build be released then? > > That would be very handy for getting people in my organization ramped up. It's kind of awkward telling them they > have to learn that stuff, and then having to admit the ground may still shift under their feet. > I would expect no major tectonic shifts from now on, perhaps some very minor tremors until ZBB (Zero Bug Bounce). Hth, Paul. [1] https://jdk8.java.net/download.html From paul.sandoz at oracle.com Tue Oct 1 03:12:07 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 01 Oct 2013 10:12:07 +0000 Subject: hg: lambda/lambda/jdk: Sync java.util.* from tl to lambda. Message-ID: <20131001101255.2D7B362C34@hg.openjdk.java.net> Changeset: a68cd7af6b17 Author: psandoz Date: 2013-10-01 12:10 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a68cd7af6b17 Sync java.util.* from tl to lambda. ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/List.java ! src/share/classes/java/util/Map.java ! src/share/classes/java/util/Optional.java ! src/share/classes/java/util/PrimitiveIterator.java ! src/share/classes/java/util/Spliterator.java ! src/share/classes/java/util/Spliterators.java ! src/share/classes/java/util/SplittableRandom.java ! src/share/classes/java/util/concurrent/ThreadLocalRandom.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/zip/ZipEntry.java ! test/java/util/Collection/MOAT.java + test/java/util/HashMap/ReplaceExisting.java ! test/java/util/Map/Defaults.java ! test/java/util/Spliterator/SpliteratorCharacteristics.java ! test/java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java ! test/java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java ! test/java/util/logging/Logger/getGlobal/TestGetGlobal.java ! test/java/util/logging/Logger/getGlobal/TestGetGlobalByName.java ! test/java/util/logging/Logger/getGlobal/TestGetGlobalConcurrent.java + test/java/util/regex/PatternStreamTest.java - test/java/util/regex/PatternTest.java From paul.sandoz at oracle.com Tue Oct 1 03:31:54 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 01 Oct 2013 10:31:54 +0000 Subject: hg: lambda/lambda/jdk: Restore unintentionally overwritten changes from previous commit syncing tl to lambda. Message-ID: <20131001103210.89D2162C35@hg.openjdk.java.net> Changeset: daf47c776210 Author: psandoz Date: 2013-10-01 12:27 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/daf47c776210 Restore unintentionally overwritten changes from previous commit syncing tl to lambda. ! src/share/classes/java/util/PrimitiveIterator.java ! test/java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java From paul.sandoz at oracle.com Tue Oct 1 03:42:03 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 01 Oct 2013 10:42:03 +0000 Subject: hg: lambda/lambda/jdk: 8024408: Specifications for Collection/List/Set/SortedSet.spliterator() need to document if all the (subclass) instances are required to return SIZED spliterators Message-ID: <20131001104219.75F2762C38@hg.openjdk.java.net> Changeset: 438046fa58f2 Author: psandoz Date: 2013-10-01 12:19 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/438046fa58f2 8024408: Specifications for Collection/List/Set/SortedSet.spliterator() need to document if all the (subclass) instances are required to return SIZED spliterators Reviewed-by: alanb ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/Set.java ! src/share/classes/java/util/SortedSet.java ! test/java/util/Spliterator/SpliteratorCharacteristics.java From Sebastian.Millies at softwareag.com Tue Oct 1 06:24:35 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Tue, 1 Oct 2013 13:24:35 +0000 Subject: API question/request: Array to Stream Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> Why can't I stream an array? It is awkward having to convert to a list first, cf. this code by Venkat Subramaniam: public void setFilters(Function... filters) { this.filter = Arrays.asList(filters).stream() // <---- .reduce((f, next) -> f.compose(next)) .orElse(Function.identity()); } Sebastian Millies Software AG Expert webMethods Business Analytics Phone: +49 681 210-3221 | Fax: +49 681 210-1801 Software AG Altenkesseler Str. 17 | 66115 Saarbr?cken | Germany www.softwareag.com Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany - Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From paul.sandoz at oracle.com Tue Oct 1 07:16:40 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 1 Oct 2013 16:16:40 +0200 Subject: API question/request: Array to Stream In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> Message-ID: On Oct 1, 2013, at 3:24 PM, "Millies, Sebastian" wrote: > Why can't I stream an array? It is awkward having to convert to a list first, cf. > this code by Venkat Subramaniam: > > public void setFilters(Function... filters) { > this.filter = > Arrays.asList(filters).stream() // <---- > .reduce((f, next) -> f.compose(next)) > .orElse(Function.identity()); > } > Use: Stream.of(filters)... Paul. From per at bothner.com Tue Oct 1 07:29:44 2013 From: per at bothner.com (Per Bothner) Date: Tue, 01 Oct 2013 07:29:44 -0700 Subject: API question/request: Array to Stream In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> Message-ID: <524ADC58.1060705@bothner.com> On 10/01/2013 07:16 AM, Paul Sandoz wrote: > > On Oct 1, 2013, at 3:24 PM, "Millies, Sebastian" wrote: > >> Why can't I stream an array? It is awkward having to convert to a list first, cf. >> this code by Venkat Subramaniam: On 10/01/2013 07:16 AM, Paul Sandoz wrote > Use: > > Stream.of(filters)... Better, IMO: Arrays.stream(filters), for 2 reasons: (1) Arrays.stream has options startInclusive/endInclusive bounds. If you have an array buffer that's not necessary full, then you need the endInclusive (though admittedly an alternative is Stream#limit). (2) As a matter of style, Stream#of is a varargs method: It takes a variable number of T, not an array of T. True, variable number of T is implemented as (and effectively overloaded as) an array of T, but Java varargs is a bit of a hack and and using ivarargs to pass a single array is less readable I think. -- --Per Bothner per at bothner.com http://per.bothner.com/ From paul.sandoz at oracle.com Tue Oct 1 07:39:53 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 1 Oct 2013 16:39:53 +0200 Subject: API question/request: Array to Stream In-Reply-To: <524ADC58.1060705@bothner.com> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <524ADC58.1060705@bothner.com> Message-ID: On Oct 1, 2013, at 4:29 PM, Per Bothner wrote: > On 10/01/2013 07:16 AM, Paul Sandoz wrote: >> >> On Oct 1, 2013, at 3:24 PM, "Millies, Sebastian" wrote: >> >>> Why can't I stream an array? It is awkward having to convert to a list first, cf. >>> this code by Venkat Subramaniam: > > On 10/01/2013 07:16 AM, Paul Sandoz wrote >> Use: >> >> Stream.of(filters)... > > Better, IMO: Arrays.stream(filters), for 2 reasons: > > (1) Arrays.stream has options startInclusive/endInclusive bounds. > If you have an array buffer that's not necessary full, then you > need the endInclusive (though admittedly an alternative is Stream#limit). > Yes, if you need to stream over a range elements in the array. (While there is limit i would not recommend using that if one can effectively limit at the source since that will be more efficient.) Otherwise, i prefer Stream.of. As you say it is a matter of style so somewhat subjective. Paul. > (2) As a matter of style, Stream#of is a varargs method: It takes a > variable number of T, not an array of T. True, variable number of T > is implemented as (and effectively overloaded as) an array of T, > but Java varargs is a bit of a hack and and using ivarargs to pass a > single array is less readable I think. > -- > --Per Bothner > per at bothner.com http://per.bothner.com/ From brian.goetz at oracle.com Tue Oct 1 07:46:13 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 1 Oct 2013 16:46:13 +0200 Subject: API question/request: Array to Stream In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> Message-ID: <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> Try Arrays.stream(array) or Stream.of(array) On Oct 1, 2013, at 3:24 PM, Millies, Sebastian wrote: > Why can't I stream an array? It is awkward having to convert to a list first, cf. > this code by Venkat Subramaniam: > > public void setFilters(Function... filters) { > this.filter = > Arrays.asList(filters).stream() // <---- > .reduce((f, next) -> f.compose(next)) > .orElse(Function.identity()); > } > > Sebastian Millies > Software AG > Expert webMethods Business Analytics > Phone: +49 681 210-3221 | Fax: +49 681 210-1801 > Software AG > Altenkesseler Str. 17 | 66115 Saarbr?cken | Germany > www.softwareag.com > > > Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany - Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > From aleksey.shipilev at oracle.com Tue Oct 1 08:25:47 2013 From: aleksey.shipilev at oracle.com (Aleksey Shipilev) Date: Tue, 01 Oct 2013 19:25:47 +0400 Subject: API question/request: Array to Stream In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> Message-ID: <524AE97B.1010305@oracle.com> On 10/01/2013 05:24 PM, Millies, Sebastian wrote: > Why can't I stream an array? It is awkward having to convert to a list first, cf. > this code by Venkat Subramaniam: > > public void setFilters(Function... filters) { > this.filter = > Arrays.asList(filters).stream() // <---- > .reduce((f, next) -> f.compose(next)) > .orElse(Function.identity()); > } > Venkat is just old-school. See: http://download.java.net/jdk8/docs/api/java/util/Arrays.html#stream(T[]) -Aleksey. From mark.reinhold at oracle.com Tue Oct 1 09:00:47 2013 From: mark.reinhold at oracle.com (mark.reinhold at oracle.com) Date: Tue, 01 Oct 2013 09:00:47 -0700 Subject: API freeze date (was RE: Collection.toArray(IntFunction)) In-Reply-To: <53E831BB-F76A-4CB1-A1EE-801B491E87B9@oracle.com> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7287@HQMBX5.eur.ad.sag>, <53E831BB-F76A-4CB1-A1EE-801B491E87B9@oracle.com> Message-ID: <20131001090047.101704@eggemoggin.niobe.net> 2013/9/30 19:23 -0700, paul.sandoz at oracle.com: > See here for the schedule: > > http://openjdk.java.net/projects/jdk8/milestones > > I presume EA builds [1] will proceed regularly on 1 to 2 week basis for M8. Yes -- we will continue to ship EA builds every week or so until M9. There isn't a specific milestone associated with the API/interface freeze. - Mark From paul.sandoz at oracle.com Tue Oct 1 09:54:02 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 01 Oct 2013 16:54:02 +0000 Subject: hg: lambda/lambda/jdk: 8025535: Unsafe typecast in java.util.stream.SortedOps Message-ID: <20131001165440.316E162C58@hg.openjdk.java.net> Changeset: ed25155a9da1 Author: psandoz Date: 2013-10-01 18:20 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ed25155a9da1 8025535: Unsafe typecast in java.util.stream.SortedOps ! src/share/classes/java/util/stream/SortedOps.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java From henry.jen at oracle.com Tue Oct 1 16:04:04 2013 From: henry.jen at oracle.com (Henry Jen) Date: Tue, 01 Oct 2013 16:04:04 -0700 Subject: RFR (4th): 8023524: Mechanism to dump generated lambda classes / log lambda code generation In-Reply-To: <0934EECA-D02A-4C0D-977E-05C26792D29D@oracle.com> References: <523945CF.9060804@oracle.com> <523994D1.8090200@redhat.com> <523A307E.6080202@oracle.com> <523AA764.60301@redhat.com> <52420B31.2070703@oracle.com> <524292AF.3020209@oracle.com> <5244BCD4.20002@oracle.com> <0934EECA-D02A-4C0D-977E-05C26792D29D@oracle.com> Message-ID: <524B54E4.9010506@oracle.com> Hi, Please review the updated webrev at http://cr.openjdk.java.net/~henryjen/ccc/8023524/3/webrev/ This update addressed comments from Mandy with following, - call doPrivileged with specific file permission, "<>", "write". - Use nio package to write deal with FS, also create directory hierarchy with package name instead of flat files. - If not specify a value or empty string, the directory is default to current working directory as "." is specified. We continue to use local encoding rule as other suggestions doesn't fit. The reason we cannot use something like URLEncoder is that ":" won't get encoded and it's not valid character for filename on Windows. All the suggestions so far seems to have that same issue. Cheers, Henry From peter.levart at gmail.com Wed Oct 2 00:19:04 2013 From: peter.levart at gmail.com (Peter Levart) Date: Wed, 02 Oct 2013 09:19:04 +0200 Subject: RFR (4th): 8023524: Mechanism to dump generated lambda classes / log lambda code generation In-Reply-To: <524B54E4.9010506@oracle.com> References: <523945CF.9060804@oracle.com> <523994D1.8090200@redhat.com> <523A307E.6080202@oracle.com> <523AA764.60301@redhat.com> <52420B31.2070703@oracle.com> <524292AF.3020209@oracle.com> <5244BCD4.20002@oracle.com> <0934EECA-D02A-4C0D-977E-05C26792D29D@oracle.com> <524B54E4.9010506@oracle.com> Message-ID: <524BC8E8.9090501@gmail.com> Hi Henry, Just a hint: Instead of parameterized singleton ProxyClassDumper with static method getInstance(path) which suggests that different ProxyClassDumper instances are returned for different path parameters (which are not), you could create for example: class DumpProxyClassAction implements PrivilegedAction { DumpProxyClassAction(String dumpDir, String className, byte[] classBytes) { ... ...and use it in InnerClassLambdaMetafactory instead of an anonymous inner class. Same number of objects per generated class are created that way... Regards, Peter On 10/02/2013 01:04 AM, Henry Jen wrote: > Hi, > > Please review the updated webrev at > http://cr.openjdk.java.net/~henryjen/ccc/8023524/3/webrev/ > > This update addressed comments from Mandy with following, > > - call doPrivileged with specific file permission, "<>", "write". > - Use nio package to write deal with FS, also create directory hierarchy > with package name instead of flat files. > - If not specify a value or empty string, the directory is default to > current working directory as "." is specified. > > We continue to use local encoding rule as other suggestions doesn't fit. > The reason we cannot use something like URLEncoder is that ":" won't get > encoded and it's not valid character for filename on Windows. All the > suggestions so far seems to have that same issue. > > Cheers, > Henry > > From peter.levart at gmail.com Wed Oct 2 00:42:35 2013 From: peter.levart at gmail.com (Peter Levart) Date: Wed, 02 Oct 2013 09:42:35 +0200 Subject: RFR (4th): 8023524: Mechanism to dump generated lambda classes / log lambda code generation In-Reply-To: <524BC8E8.9090501@gmail.com> References: <523945CF.9060804@oracle.com> <523994D1.8090200@redhat.com> <523A307E.6080202@oracle.com> <523AA764.60301@redhat.com> <52420B31.2070703@oracle.com> <524292AF.3020209@oracle.com> <5244BCD4.20002@oracle.com> <0934EECA-D02A-4C0D-977E-05C26792D29D@oracle.com> <524B54E4.9010506@oracle.com> <524BC8E8.9090501@gmail.com> Message-ID: <524BCE6B.2080403@gmail.com> Ah, I see, you want it that way to track that a warning about invalid directory is logged only once. That could be solved with an: private static final ConcurrentMap invalidDirs = new ConcurrentHashMap<>(); ...and then in validateDumpDir: if (invalidDirs.putIfAbsent(path, path) == null) { logger.warning(... If you wanted to support a per-path instance of ProxyClassDumper, you would need a registry of ProxyClassDumper instances anyway, implemented with such a ConcurrentHashMap... Regards, Peter On 10/02/2013 09:19 AM, Peter Levart wrote: > Hi Henry, > > Just a hint: Instead of parameterized singleton ProxyClassDumper with > static method getInstance(path) which suggests that different > ProxyClassDumper instances are returned for different path parameters > (which are not), you could create for example: > > class DumpProxyClassAction implements PrivilegedAction { > DumpProxyClassAction(String dumpDir, String className, byte[] > classBytes) { > ... > > ...and use it in InnerClassLambdaMetafactory instead of an anonymous > inner class. Same number of objects per generated class are created > that way... > > Regards, Peter > > On 10/02/2013 01:04 AM, Henry Jen wrote: >> Hi, >> >> Please review the updated webrev at >> http://cr.openjdk.java.net/~henryjen/ccc/8023524/3/webrev/ >> >> This update addressed comments from Mandy with following, >> >> - call doPrivileged with specific file permission, "<>", >> "write". >> - Use nio package to write deal with FS, also create directory hierarchy >> with package name instead of flat files. >> - If not specify a value or empty string, the directory is default to >> current working directory as "." is specified. >> >> We continue to use local encoding rule as other suggestions doesn't fit. >> The reason we cannot use something like URLEncoder is that ":" won't get >> encoded and it's not valid character for filename on Windows. All the >> suggestions so far seems to have that same issue. >> >> Cheers, >> Henry >> >> > From mcnepp02 at googlemail.com Wed Oct 2 01:07:10 2013 From: mcnepp02 at googlemail.com (Gernot Neppert) Date: Wed, 2 Oct 2013 10:07:10 +0200 Subject: API question/request: Array to Stream In-Reply-To: <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> Message-ID: Oops, I hadn't noticed there were 2 factory methods at different places doing exactly the same thing. Won't this perpetually provoke the question "Which one should I use?" Since java.util.Arrays has such a complete set of Stream-creation methods, maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? 2013/10/1 Brian Goetz > Try > > Arrays.stream(array) > > or > > Stream.of(array) > > > On Oct 1, 2013, at 3:24 PM, Millies, Sebastian wrote: > > > Why can't I stream an array? It is awkward having to convert to a list > first, cf. > > this code by Venkat Subramaniam: > > > > public void setFilters(Function... filters) { > > this.filter = > > Arrays.asList(filters).stream() // <---- > > .reduce((f, next) -> f.compose(next)) > > .orElse(Function.identity()); > > } > > > > Sebastian Millies > > Software AG > > Expert webMethods Business Analytics > > Phone: +49 681 210-3221 | Fax: +49 681 210-1801 > > Software AG > > Altenkesseler Str. 17 | 66115 Saarbr?cken | Germany > > www.softwareag.com > > > > > > Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, > Germany - Registergericht/Commercial register: Darmstadt HRB 1562 - > Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), > Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of > the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > > > > > > From Sebastian.Millies at softwareag.com Wed Oct 2 01:06:55 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Wed, 2 Oct 2013 08:06:55 +0000 Subject: OO design patterns vs FP idioms in Java 8 Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC784C@HQMBX5.eur.ad.sag> Hi there, has anyone written about the relation of OO design patterns (by which I mean the usual GoF patterns) to functional programming idioms that may be applicable in Java 8? The reason I ask is that I think it's possible that ideas from FP may inform our approach to design patterns in the new Java release. I have searched Google a bit, but found no really coherent discussion. Much of it just boils down to higher order functions. For example, it seems obvious that Decorator (and Chain of Responsibility and Adapter, too) are forms of functional composition. Strategy is just passing a lambda that implements the concrete strategy. But other patterns are more complicated. Visitor is often cited as being fold, which is almost reduce in separating the traversal, in this case of a stream, from the algorithm operating on the stream elements. But would this carry over to other structures than streams in Java 8? Some typical FP things would clearly be inappropriate in Java. Obviously, Java is not being transformed into Haskell, and I don?t expect to use monadic programming instead of throwing exceptions ;-) However, other FP ideas may now be really viable in Java. I suspect this might be off-topic for this list, as it?s a bit speculative. But I find the question just naturally suggests itself. n Sebastian Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From mcnepp02 at googlemail.com Wed Oct 2 01:18:28 2013 From: mcnepp02 at googlemail.com (Gernot Neppert) Date: Wed, 2 Oct 2013 10:18:28 +0200 Subject: easier work with collections: default Stream.toList? In-Reply-To: <1851075097.146442211.1380360089359.JavaMail.root@zimbra32-e6.priv.proxad.net> References: <1611635630.146425623.1380359524320.JavaMail.root@zimbra32-e6.priv.proxad.net> <1851075097.146442211.1380360089359.JavaMail.root@zimbra32-e6.priv.proxad.net> Message-ID: Thumbs up for 'toList()'! In our home-brewn Streaming framework, 'toList()' is the terminal operation in the vast majority of all usecases. We have a more generic method 'into(Collection)' also, but we explicitly added 'toList()' because it was so frequent! I have to admit I don't understand the opponents' argument 'adding toList() ties the Streaming API to the Collections API'. Both java.util.Collection and java.util.streams.* will be part of the JDK for years to come. It's not as if we were to abandon the Collections framework in the foreseeable future, right? (Like every API, it has it's quirks, but it's far from 'bad') 2013/9/28 > hi guys, > > Brian, you mentioned back in May the possibility that the EG might > consider adding a small number of convenience methods/shortcuts for > collecting elements: > > http://mail.openjdk.java.net/pipermail/lambda-dev/2013-May/009798.html > (can't reply as I was not subscribed at the time, sorry) > > I see the API freeze deadline is approaching, and I grasp the problem of > opening more API demand or the intent to guide users to using Collectors > entirely instead, but is there any hope? > > We have ~15 years of APIs all over the world accepting Collections and > Maps, and I really think having those two: > > * .toList() -> .collect(Collections.toList()) > * .groupBy(classifier) -> .collect(Collections.groupingBy(classifier)) > > would be a huge asset to use existing librairies smoothly, increasing > readability and helping newcomers for the simplest and most common cases. > > I understand static imports can increase readability a bit, and IDE > support will certainly help in that area, but until now they were no real > API "requiring" this way of writing (and if you're not, it's really > verbose). I'm confident having these shortcuts with javadoc to gently point > users to collectors would be really more helpful and expected. > > I personally do not think .toSet() is worth it though. > > --St?phane > > From Sebastian.Millies at softwareag.com Wed Oct 2 01:18:06 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Wed, 2 Oct 2013 08:18:06 +0000 Subject: API question/request: Array to Stream In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC78B1@HQMBX5.eur.ad.sag> but Stream.of(T...) reads so much more elegant... > -----Original Message----- > From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev- > bounces at openjdk.java.net] On Behalf Of Gernot Neppert > Sent: Wednesday, October 02, 2013 10:07 AM > To: Brian Goetz > Cc: lambda-dev > Subject: Re: API question/request: Array to Stream > > Oops, I hadn't noticed there were 2 factory methods at different places > doing exactly the same thing. > Won't this perpetually provoke the question "Which one should I use?" > > Since java.util.Arrays has such a complete set of Stream-creation methods, > maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? > > > > 2013/10/1 Brian Goetz > > > Try > > > > Arrays.stream(array) > > > > or > > > > Stream.of(array) > > > > > > On Oct 1, 2013, at 3:24 PM, Millies, Sebastian wrote: > > > > > Why can't I stream an array? It is awkward having to convert to a list > > first, cf. > > > this code by Venkat Subramaniam: > > > > > > public void setFilters(Function... filters) { > > > this.filter = > > > Arrays.asList(filters).stream() // <---- > > > .reduce((f, next) -> f.compose(next)) > > > .orElse(Function.identity()); > > > } > > > > > > Sebastian Millies > > > Software AG > > > Expert webMethods Business Analytics > > > Phone: +49 681 210-3221 | Fax: +49 681 210-1801 > > > Software AG > > > Altenkesseler Str. 17 | 66115 Saarbr?cken | Germany > > > www.softwareag.com > > > > > > > > > Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, > > Germany - Registergericht/Commercial register: Darmstadt HRB 1562 - > > Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), > > Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of > > the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > > > > > > > > > > > From Sebastian.Millies at softwareag.com Wed Oct 2 01:32:56 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Wed, 2 Oct 2013 08:32:56 +0000 Subject: API question/request: Array to Stream References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7902@HQMBX5.eur.ad.sag> sorry, I misunderstood. You're suggesting to add a new varargs method to Arrays, instead of having it in Streams, so one would write Arrays.stream(one,two) instead of Stream.of(one,two). This would focus attention on the fact that varargs are internally treated as arrays. One could see this as a disadvantage, I'm not sure. -- Sebastian > -----Original Message----- > From: Sebastian.Millies at softwareag.com > Sent: Wednesday, October 02, 2013 10:19 AM > To: lambda-dev at openjdk.java.net > Subject: RE: API question/request: Array to Stream > > but Stream.of(T...) reads so much more elegant... > > > -----Original Message----- > > From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev- > > bounces at openjdk.java.net] On Behalf Of Gernot Neppert > > Sent: Wednesday, October 02, 2013 10:07 AM > > To: Brian Goetz > > Cc: lambda-dev > > Subject: Re: API question/request: Array to Stream > > > > Oops, I hadn't noticed there were 2 factory methods at different places > > doing exactly the same thing. > > Won't this perpetually provoke the question "Which one should I use?" > > > > Since java.util.Arrays has such a complete set of Stream-creation methods, > > maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? > > > > > > > > 2013/10/1 Brian Goetz > > > > > Try > > > > > > Arrays.stream(array) > > > > > > or > > > > > > Stream.of(array) > > > > > > > > > On Oct 1, 2013, at 3:24 PM, Millies, Sebastian wrote: > > > > > > > Why can't I stream an array? It is awkward having to convert to a list > > > first, cf. > > > > this code by Venkat Subramaniam: > > > > > > > > public void setFilters(Function... filters) { > > > > this.filter = > > > > Arrays.asList(filters).stream() // <---- > > > > .reduce((f, next) -> f.compose(next)) > > > > .orElse(Function.identity()); > > > > } > > > > > > > > Sebastian Millies > > > > Software AG > > > > Expert webMethods Business Analytics > > > > Phone: +49 681 210-3221 | Fax: +49 681 210-1801 > > > > Software AG > > > > Altenkesseler Str. 17 | 66115 Saarbr?cken | Germany > > > > www.softwareag.com > > > > > > > > > > > > Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, > > > Germany - Registergericht/Commercial register: Darmstadt HRB 1562 - > > > Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), > > > Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of > > > the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > > > > > > > > > > > > > > > > From paul.sandoz at oracle.com Wed Oct 2 02:02:44 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 2 Oct 2013 11:02:44 +0200 Subject: API question/request: Array to Stream In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> Message-ID: On Oct 2, 2013, at 10:07 AM, Gernot Neppert wrote: > Oops, I hadn't noticed there were 2 factory methods at different places > doing exactly the same thing. > Won't this perpetually provoke the question "Which one should I use?" > In this case i think it is mostly harmless; the answer being "which ever one you prefer" (they are effectively the same thing). > Since java.util.Arrays has such a complete set of Stream-creation methods, > maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? > The problem with Arrays, as with other factory creation methods, is it can be often hard to find things. So we have placed a few static factory methods on Stream itself, and Stream.of serves the duel purpose of creating a stream from an explicit enumeration of elements or from an array of elements. Note that we have avoided adding List.of etc (as proposed by Stephen) due to time constraints but also because it is likely we can do better with collection literals. Paul. From paul.sandoz at oracle.com Wed Oct 2 02:11:34 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 2 Oct 2013 11:11:34 +0200 Subject: easier work with collections: default Stream.toList? In-Reply-To: References: <1611635630.146425623.1380359524320.JavaMail.root@zimbra32-e6.priv.proxad.net> <1851075097.146442211.1380360089359.JavaMail.root@zimbra32-e6.priv.proxad.net> Message-ID: On Oct 2, 2013, at 10:18 AM, Gernot Neppert wrote: > Thumbs up for 'toList()'! > > In our home-brewn Streaming framework, 'toList()' is the terminal operation > in the vast majority of all usecases. We have a more generic method > 'into(Collection)' also, but we explicitly added 'toList()' because it was > so frequent! > Thanks, that anecdotally confirms what i suspected. > I have to admit I don't understand the opponents' argument 'adding > toList() ties the Streaming API to the Collections API'. Both > java.util.Collection and java.util.streams.* will be part of the JDK for > years to come. It's not as if we were to abandon the Collections framework > in the foreseeable future, right? > (Like every API, it has it's quirks, but it's far from 'bad') > It means - other implementations of Stream, using a different collections, are also tied to the current JDK collections; and - in the future there may be better or alternative collections. If we ever get to the point of including persistent collections there is likely to be a different set of collectors that could be used. Persistent collections would be very handy for parallel reduction since they will most likely be more efficient for merging (although we can and probably should improve our current implementation of list merging and use an internal chunked list representation to avoid copying the right side into the left side). Paul. From richard.warburton at gmail.com Wed Oct 2 02:25:32 2013 From: richard.warburton at gmail.com (Richard Warburton) Date: Wed, 2 Oct 2013 10:25:32 +0100 Subject: API question/request: Array to Stream In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> Message-ID: Hi, Oops, I hadn't noticed there were 2 factory methods at different places > doing exactly the same thing. > Won't this perpetually provoke the question "Which one should I use?" > > Since java.util.Arrays has such a complete set of Stream-creation methods, > maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? > I did actually raise this issue before, albeit proposing dropping Arrays.stream in favour of Stream.of and the response indicated that this was unlikely to happen. It isn't really a big issue either way to be fair. I doubt the situation has changed since then especially given the reduced time budget available for implementing such changes. regards, Dr. Richard Warburton http://insightfullogic.com @RichardWarburto From forax at univ-mlv.fr Wed Oct 2 02:37:44 2013 From: forax at univ-mlv.fr (Remi Forax) Date: Wed, 02 Oct 2013 11:37:44 +0200 Subject: API question/request: Array to Stream In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> Message-ID: <524BE968.5000309@univ-mlv.fr> On 10/02/2013 11:02 AM, Paul Sandoz wrote: > On Oct 2, 2013, at 10:07 AM, Gernot Neppert wrote: > >> Oops, I hadn't noticed there were 2 factory methods at different places >> doing exactly the same thing. >> Won't this perpetually provoke the question "Which one should I use?" >> > In this case i think it is mostly harmless; the answer being "which ever one you prefer" (they are effectively the same thing). And it's not the first time that we have the same method at two places, by example Integer.toString(int) and String.valueOf(int). if one call the other, as Paul said, it's more to avoid a discovery problem. > > >> Since java.util.Arrays has such a complete set of Stream-creation methods, >> maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? >> > The problem with Arrays, as with other factory creation methods, is it can be often hard to find things. > > So we have placed a few static factory methods on Stream itself, and Stream.of serves the duel purpose of creating a stream from an explicit enumeration of elements or from an array of elements. > > Note that we have avoided adding List.of etc (as proposed by Stephen) due to time constraints but also because it is likely we can do better with collection literals. and Collection literals was one item of project coin that was delayed and moved from jdk7 to jdk8 :) > > Paul. R?mi From samir at noodlesandwich.com Wed Oct 2 02:55:35 2013 From: samir at noodlesandwich.com (Samir Talwar) Date: Wed, 2 Oct 2013 10:55:35 +0100 Subject: API question/request: Array to Stream In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> Message-ID: I quite like the semantic difference between "build me a new stream" and "make a stream from this array". As long as this is something remembered by the team working on a code base (which is on you, not Oracle), I'm in favour of keeping both. On Wed, Oct 2, 2013 at 10:25 AM, Richard Warburton < richard.warburton at gmail.com> wrote: > Hi, > > Oops, I hadn't noticed there were 2 factory methods at different places > > doing exactly the same thing. > > Won't this perpetually provoke the question "Which one should I use?" > > > > Since java.util.Arrays has such a complete set of Stream-creation > methods, > > maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? > > > > I did actually raise this issue before, albeit proposing dropping > Arrays.stream in favour of Stream.of and the response indicated that this > was unlikely to happen. It isn't really a big issue either way to be fair. > I doubt the situation has changed since then especially given the reduced > time budget available for implementing such changes. > > regards, > > Dr. Richard Warburton > > http://insightfullogic.com > @RichardWarburto > > From tristan.yan at oracle.com Wed Oct 2 03:26:49 2013 From: tristan.yan at oracle.com (Tristan Yan) Date: Wed, 2 Oct 2013 03:26:49 -0700 (PDT) Subject: Open a bug for compiler crash Message-ID: https://bugs.openjdk.java.net/browse/JDK-8025816 Thank you Tristan Yan(Haibo Yan) Office : 8610-61066212 Fax : 8610-61065441 Cell : 86-18610696822 2F, Building No. 24, Zhongguancun Software Park Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193 oracle From v.a.ammodytes at googlemail.com Wed Oct 2 03:45:27 2013 From: v.a.ammodytes at googlemail.com (Arne Siegel) Date: Wed, 2 Oct 2013 12:45:27 +0200 Subject: API question/request: Array to Stream In-Reply-To: <524BE968.5000309@univ-mlv.fr> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> <524BE968.5000309@univ-mlv.fr> Message-ID: I think the current API decisions regarding stream creation from arrays are a bit dangerous. Look at this example, based on a theme from Josh Blochs Effective Java: IntStream is1 = IntStream.of(1,2,3,5); System.out.println("Number of elements in stream: " + is1.count()); // --> 4 Stream is2 = Stream.of(1,2,3,5); System.out.println("Number of elements in stream: " + is2.count()); // --> 4 int[] data = {6,7,8,7}; IntStream is3 = Arrays.stream(data); System.out.println("Number of elements in stream: " + is3.count()); // --> 4 IntStream is4 = IntStream.of(data); System.out.println("Number of elements in stream: " + is4.count()); // --> 4 Stream is5 = Stream.of(data); System.out.println("Number of elements in stream: " + is5.count()); // --> 1 !!!! 2013/10/2 Remi Forax > On 10/02/2013 11:02 AM, Paul Sandoz wrote: > > On Oct 2, 2013, at 10:07 AM, Gernot Neppert > wrote: > > > >> Oops, I hadn't noticed there were 2 factory methods at different places > >> doing exactly the same thing. > >> Won't this perpetually provoke the question "Which one should I use?" > >> > > In this case i think it is mostly harmless; the answer being "which ever > one you prefer" (they are effectively the same thing). > > And it's not the first time that we have the same method at two places, > by example Integer.toString(int) and String.valueOf(int). > if one call the other, as Paul said, it's more to avoid a discovery > problem. > > > > > > >> Since java.util.Arrays has such a complete set of Stream-creation > methods, > >> maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? > >> > > The problem with Arrays, as with other factory creation methods, is it > can be often hard to find things. > > > > So we have placed a few static factory methods on Stream itself, and > Stream.of serves the duel purpose of creating a stream from an explicit > enumeration of elements or from an array of elements. > > > > Note that we have avoided adding List.of etc (as proposed by Stephen) > due to time constraints but also because it is likely we can do better with > collection literals. > > and Collection literals was one item of project coin that was delayed > and moved from jdk7 to jdk8 :) > > > > > Paul. > > R?mi > > > From forax at univ-mlv.fr Wed Oct 2 03:43:22 2013 From: forax at univ-mlv.fr (Remi Forax) Date: Wed, 02 Oct 2013 12:43:22 +0200 Subject: Open a bug for compiler crash In-Reply-To: References: Message-ID: <524BF8CA.1080908@univ-mlv.fr> On 10/02/2013 12:26 PM, Tristan Yan wrote: > https://bugs.openjdk.java.net/browse/JDK-8025816 > > Thank you It doesn't crash, it throws a NPE. A possible workaround is to correctly declare m2: public default > void m2(Collection c) { R?mi > > > > Tristan Yan(Haibo Yan) > > Office : 8610-61066212 > > Fax : 8610-61065441 > > Cell : 86-18610696822 > > > > 2F, Building No. 24, Zhongguancun Software Park > > Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193 > > oracle > > > > From samir at noodlesandwich.com Wed Oct 2 03:50:25 2013 From: samir at noodlesandwich.com (Samir Talwar) Date: Wed, 2 Oct 2013 11:50:25 +0100 Subject: API question/request: Array to Stream In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7404@HQMBX5.eur.ad.sag> <5BBDE948-7366-4D77-9021-DF99F8A225A5@oracle.com> <524BE968.5000309@univ-mlv.fr> Message-ID: I don't think this is much of an issue. If you put the generics in as you *expect* the program to work (i.e. use Stream wherever you have a raw Stream), your program will fail to compile on that last one. All IDEs warn you when you don't have generics, and I'd expect anyone using Java 8 APIs to be comfortable using them. ? Samir. On Wed, Oct 2, 2013 at 11:45 AM, Arne Siegel wrote: > I think the current API decisions regarding stream creation from arrays are > a bit dangerous. Look at this example, based on a theme from Josh Blochs > Effective Java: > > IntStream is1 = IntStream.of(1,2,3,5); > System.out.println("Number of elements in stream: " + > is1.count()); // --> 4 > > Stream is2 = Stream.of(1,2,3,5); > System.out.println("Number of elements in stream: " + > is2.count()); // --> 4 > > int[] data = {6,7,8,7}; > > IntStream is3 = Arrays.stream(data); > System.out.println("Number of elements in stream: " + > is3.count()); // --> 4 > > IntStream is4 = IntStream.of(data); > System.out.println("Number of elements in stream: " + > is4.count()); // --> 4 > > Stream is5 = Stream.of(data); > System.out.println("Number of elements in stream: " + > is5.count()); // --> 1 !!!! > > > > > 2013/10/2 Remi Forax > > > On 10/02/2013 11:02 AM, Paul Sandoz wrote: > > > On Oct 2, 2013, at 10:07 AM, Gernot Neppert > > wrote: > > > > > >> Oops, I hadn't noticed there were 2 factory methods at different > places > > >> doing exactly the same thing. > > >> Won't this perpetually provoke the question "Which one should I use?" > > >> > > > In this case i think it is mostly harmless; the answer being "which > ever > > one you prefer" (they are effectively the same thing). > > > > And it's not the first time that we have the same method at two places, > > by example Integer.toString(int) and String.valueOf(int). > > if one call the other, as Paul said, it's more to avoid a discovery > > problem. > > > > > > > > > > >> Since java.util.Arrays has such a complete set of Stream-creation > > methods, > > >> maybe one could drop Stream.of(T...) in favour of Arrays.stream(T...)? > > >> > > > The problem with Arrays, as with other factory creation methods, is it > > can be often hard to find things. > > > > > > So we have placed a few static factory methods on Stream itself, and > > Stream.of serves the duel purpose of creating a stream from an explicit > > enumeration of elements or from an array of elements. > > > > > > Note that we have avoided adding List.of etc (as proposed by Stephen) > > due to time constraints but also because it is likely we can do better > with > > collection literals. > > > > and Collection literals was one item of project coin that was delayed > > and moved from jdk7 to jdk8 :) > > > > > > > > Paul. > > > > R?mi > > > > > > > > From paul.sandoz at oracle.com Wed Oct 2 07:43:16 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Wed, 02 Oct 2013 14:43:16 +0000 Subject: hg: lambda/lambda/jdk: 8025534: Unsafe typecast in java.util.stream.Streams.Nodes; ... Message-ID: <20131002144422.CB1A562CA6@hg.openjdk.java.net> Changeset: 579f759eb9f4 Author: psandoz Date: 2013-10-02 16:34 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/579f759eb9f4 8025534: Unsafe typecast in java.util.stream.Streams.Nodes 8025538: Unsafe typecast in java.util.stream.SpinedBuffer 8025533: Unsafe typecast in java.util.stream.Streams.RangeIntSpliterator.splitPoint() 8025525: Unsafe typecast in java.util.stream.Node.OfPrimitive.asArray() ! src/share/classes/java/util/stream/Node.java ! src/share/classes/java/util/stream/Nodes.java ! src/share/classes/java/util/stream/SortedOps.java ! src/share/classes/java/util/stream/SpinedBuffer.java ! src/share/classes/java/util/stream/Streams.java From zhong.j.yu at gmail.com Wed Oct 2 09:02:24 2013 From: zhong.j.yu at gmail.com (Zhong Yu) Date: Wed, 2 Oct 2013 11:02:24 -0500 Subject: easier work with collections: default Stream.toList? In-Reply-To: References: <1611635630.146425623.1380359524320.JavaMail.root@zimbra32-e6.priv.proxad.net> <1851075097.146442211.1380360089359.JavaMail.root@zimbra32-e6.priv.proxad.net> Message-ID: By the same reasoning, List should not be used in any public API ever:) The proposed toList() method is obviously a backward looking API to help Stream to interact with legacy code/mindset. It is "not pure", but it is very useful. Another use case to consider: in a new API method, I could return a Stream or a List. I prefer Stream, but I suspect that a lot of users would rather see a List instead, which makes me really hesitant to return a Stream. If Stream had a toList() method, and assume list.stream().toList() is very efficient, then there's no problem to return a Stream here. Zhong Yu On Wed, Oct 2, 2013 at 4:11 AM, Paul Sandoz wrote: > On Oct 2, 2013, at 10:18 AM, Gernot Neppert wrote: >> Thumbs up for 'toList()'! >> >> In our home-brewn Streaming framework, 'toList()' is the terminal operation >> in the vast majority of all usecases. We have a more generic method >> 'into(Collection)' also, but we explicitly added 'toList()' because it was >> so frequent! >> > > Thanks, that anecdotally confirms what i suspected. > > >> I have to admit I don't understand the opponents' argument 'adding >> toList() ties the Streaming API to the Collections API'. Both >> java.util.Collection and java.util.streams.* will be part of the JDK for >> years to come. It's not as if we were to abandon the Collections framework >> in the foreseeable future, right? >> (Like every API, it has it's quirks, but it's far from 'bad') >> > > It means > > - other implementations of Stream, using a different collections, are also tied to the current JDK collections; and > > - in the future there may be better or alternative collections. > > If we ever get to the point of including persistent collections there is likely to be a different set of collectors that could be used. Persistent collections would be very handy for parallel reduction since they will most likely be more efficient for merging (although we can and probably should improve our current implementation of list merging and use an internal chunked list representation to avoid copying the right side into the left side). > > Paul. > > > From paul.sandoz at oracle.com Wed Oct 2 09:12:20 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 2 Oct 2013 18:12:20 +0200 Subject: easier work with collections: default Stream.toList? In-Reply-To: References: <1611635630.146425623.1380359524320.JavaMail.root@zimbra32-e6.priv.proxad.net> <1851075097.146442211.1380360089359.JavaMail.root@zimbra32-e6.priv.proxad.net> Message-ID: On Oct 2, 2013, at 6:02 PM, Zhong Yu wrote: > By the same reasoning, List should not be used in any public API ever:) > Ermm... only if you take that reasoning to an unreasonable level :-) Paul. > The proposed toList() method is obviously a backward looking API to > help Stream to interact with legacy code/mindset. It is "not pure", > but it is very useful. > > Another use case to consider: in a new API method, I could return a > Stream or a List. I prefer Stream, but I suspect that a lot of users > would rather see a List instead, which makes me really hesitant to > return a Stream. If Stream had a toList() method, and assume > list.stream().toList() is very efficient, then there's no problem to > return a Stream here. > > Zhong Yu From brian.goetz at oracle.com Wed Oct 2 09:20:57 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Wed, 2 Oct 2013 18:20:57 +0200 Subject: easier work with collections: default Stream.toList? In-Reply-To: References: <1611635630.146425623.1380359524320.JavaMail.root@zimbra32-e6.priv.proxad.net> <1851075097.146442211.1380360089359.JavaMail.root@zimbra32-e6.priv.proxad.net> Message-ID: >> By the same reasoning, List should not be used in any public API ever:) > > Ermm... only if you take that reasoning to an unreasonable level :-) Right. It was a design goal of Streams to be "Collections 1.5" -- not the replacement for the collections, but a bridge to where we could see Collections 2 from there. Hence the reluctance to wrap the historical anchor around our neck. From zhong.j.yu at gmail.com Wed Oct 2 09:32:56 2013 From: zhong.j.yu at gmail.com (Zhong Yu) Date: Wed, 2 Oct 2013 11:32:56 -0500 Subject: easier work with collections: default Stream.toList? In-Reply-To: References: <1611635630.146425623.1380359524320.JavaMail.root@zimbra32-e6.priv.proxad.net> <1851075097.146442211.1380360089359.JavaMail.root@zimbra32-e6.priv.proxad.net> Message-ID: I still don't understand in specific terms why Stream.toList() could hinder any future developments. It might be an eyesore, but what's the big deal otherwise? Zhong Yu On Wed, Oct 2, 2013 at 11:20 AM, Brian Goetz wrote: >>> By the same reasoning, List should not be used in any public API ever:) >> >> Ermm... only if you take that reasoning to an unreasonable level :-) > > Right. It was a design goal of Streams to be "Collections 1.5" -- not the replacement for the collections, but a bridge to where we could see Collections 2 from there. Hence the reluctance to wrap the historical anchor around our neck. > > > From Sebastian.Millies at softwareag.com Wed Oct 2 11:59:20 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Wed, 2 Oct 2013 18:59:20 +0000 Subject: Enums of Lambdas Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7C74@HQMBX5.eur.ad.sag> Hi there, what's the most elegant way to define an enum of lambdas? For example, this enum of BinaryOperators looks clumsy: public static enum Calc { CalcMult((n, m) -> n * m), CalcAdd((n, m) -> { int result = 0; for (int i = 0; i < n; i++) result += m; return result; }); private Calc(IntBinaryOperator op) { this.op = op; } private final IntBinaryOperator op; } I guess I'd perhaps be better off not using an enum at all, but just two static final members. n Sebastian Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany - Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From Sebastian.Millies at softwareag.com Wed Oct 2 12:15:24 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Wed, 2 Oct 2013 19:15:24 +0000 Subject: OO design patterns vs FP idioms in Java 8 In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7858@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7858@HQMBX5.eur.ad.sag> Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7CB6@HQMBX5.eur.ad.sag> after some more searching I discovered these two articles by Neal Ford in the ?Functional Thinking? on IBM developerworks. https://www.ibm.com/developerworks/java/library/j-ft10/index.html https://www.ibm.com/developerworks/java/library/j-ft11/ He says: In the functional-programming world, traditional design patterns generally manifest in one of three ways: 1. The pattern is absorbed by the language. 2. The pattern solution still exists in the functional paradigm, but the implementation details differ. 3. The solution is implemented using capabilities other languages or paradigms lack. (For example, many solutions that use metaprogramming are clean and elegant ? and they're not possible in Java.) My reading up to now could be summarized like this: ? Strategy o take functions that implement a strategy o provide functions to choose from ? Template and Factory Method o these patterns also relate to supplying concrete behavior ? Command o disappears, because object wrapper not needed for portable functionality ? Chain of Responsibility and Decorator o composition of (partial) functions ? Adaptor o adaptor classes can be conveniently replaced by (composable) lambdas ? Visitor o more complex, no direct correspondence o special case for streams: reduce I?d welcome any comments, additional examples of correspondences. n Sebastian From: Sebastian.Millies at softwareag.com Sent: Wednesday, October 02, 2013 10:08 AM To: lambda-dev at openjdk.java.net Subject: OO design patterns vs FP idioms in Java 8 Hi there, has anyone written about the relation of OO design patterns (by which I mean the usual GoF patterns) to functional programming idioms that may be applicable in Java 8? The reason I ask is that I think it's possible that ideas from FP may inform our approach to design patterns in the new Java release. I have searched Google a bit, but found no really coherent discussion. Much of it just boils down to higher order functions. For example, it seems obvious that Decorator (and Chain of Responsibility and Adapter, too) are forms of functional composition. Strategy is just passing a lambda that implements the concrete strategy. But other patterns are more complicated. Visitor is often cited as being fold, which is almost reduce in separating the traversal, in this case of a stream, from the algorithm operating on the stream elements. But would this carry over to other structures than streams in Java 8? Some typical FP things would clearly be inappropriate in Java. Obviously, Java is not being transformed into Haskell, and I don?t expect to use monadic programming instead of throwing exceptions ;-) However, other FP ideas may now be really viable in Java. I suspect this might be off-topic for this list, as it?s a bit speculative. But I find the question just naturally suggests itself. n Sebastian Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From samir at noodlesandwich.com Wed Oct 2 15:31:14 2013 From: samir at noodlesandwich.com (Samir Talwar) Date: Wed, 2 Oct 2013 23:31:14 +0100 Subject: Enums of Lambdas In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7C74@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7C74@HQMBX5.eur.ad.sag> Message-ID: // Sending again, because "Reply" doesn't reply to the list. Why does CalcAdd do slow multiplication? ? Samir. On Wed, Oct 2, 2013 at 7:59 PM, Millies, Sebastian < Sebastian.Millies at softwareag.com> wrote: > Hi there, > > what's the most elegant way to define an enum of lambdas? > For example, this enum of BinaryOperators looks clumsy: > > public static enum Calc { > > CalcMult((n, m) -> n * m), > > CalcAdd((n, m) -> { > int result = 0; > for (int i = 0; i < n; i++) > result += m; > return result; > }); > > private Calc(IntBinaryOperator op) { > this.op = op; > } > > private final IntBinaryOperator op; > } > > I guess I'd perhaps be better off not using an enum at all, but just two > static final members. > > > n Sebastian > > > > Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, > Germany - Registergericht/Commercial register: Darmstadt HRB 1562 - > Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), > Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of > the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > > From samir at noodlesandwich.com Wed Oct 2 15:37:38 2013 From: samir at noodlesandwich.com (Samir Talwar) Date: Wed, 2 Oct 2013 23:37:38 +0100 Subject: OO design patterns vs FP idioms in Java 8 In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7CB6@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7858@HQMBX5.eur.ad.sag> <32F15738E8E5524DA4F01A0FA4A8E490C2FC7CB6@HQMBX5.eur.ad.sag> Message-ID: The following should be taken with a grain of salt. I haven't read the Design Patterns book; this is just my observations from real-world usage, which is subject to argumentum ad anecdotum. I'd argue that the Visitor pattern becomes an anti-pattern in the functional paradigm. The visitor pattern is really a mechanism to selectively allow access to internal state and therefore decouple functions from the objects on which they act, which is necessary because of the "tell, don't ask" principle. Decomposition of data structures is encouraged in FP, so visitors aren't really necessary. We just have functions and data structures, not objects. ? Samir. On Wed, Oct 2, 2013 at 8:15 PM, Millies, Sebastian < Sebastian.Millies at softwareag.com> wrote: > after some more searching I discovered these two articles by Neal Ford in > the ?Functional Thinking? on IBM developerworks. > https://www.ibm.com/developerworks/java/library/j-ft10/index.html > https://www.ibm.com/developerworks/java/library/j-ft11/ > > He says: > > In the functional-programming world, traditional design patterns generally > manifest in one of three ways: > > 1. The pattern is absorbed by the language. > > 2. The pattern solution still exists in the functional paradigm, but > the implementation details differ. > > 3. The solution is implemented using capabilities other languages or > paradigms lack. (For example, many solutions that use metaprogramming are > clean and elegant ? and they're not possible in Java.) > > My reading up to now could be summarized like this: > > > ? Strategy > > o take functions that implement a strategy > > o provide functions to choose from > > ? Template and Factory Method > > o these patterns also relate to supplying concrete behavior > > ? Command > > o disappears, because object wrapper not needed for portable > functionality > > ? Chain of Responsibility and Decorator > > o composition of (partial) functions > > ? Adaptor > > o adaptor classes can be conveniently replaced by (composable) lambdas > > ? Visitor > > o more complex, no direct correspondence > > o special case for streams: reduce > > I?d welcome any comments, additional examples of correspondences. > > > n Sebastian > > > > From: Sebastian.Millies at softwareag.com > Sent: Wednesday, October 02, 2013 10:08 AM > To: lambda-dev at openjdk.java.net > Subject: OO design patterns vs FP idioms in Java 8 > > Hi there, > > has anyone written about the relation of OO design patterns (by which I > mean the usual GoF patterns) to functional programming idioms that may be > applicable in Java 8? The reason I ask is that I think it's possible that > ideas from FP may inform our approach to design patterns in the new Java > release. I have searched Google a bit, but found no really coherent > discussion. > > Much of it just boils down to higher order functions. For example, it > seems obvious that Decorator (and Chain of Responsibility and Adapter, too) > are forms of functional composition. Strategy is just passing a lambda that > implements the concrete strategy. > > But other patterns are more complicated. Visitor is often cited as being > fold, which is almost reduce in separating the traversal, in this case of a > stream, from the algorithm operating on the stream elements. But would this > carry over to other structures than streams in Java 8? > > Some typical FP things would clearly be inappropriate in Java. Obviously, > Java is not being transformed into Haskell, and I don?t expect to use > monadic programming instead of throwing exceptions ;-) However, other FP > ideas may now be really viable in Java. > > I suspect this might be off-topic for this list, as it?s a bit > speculative. But I find the question just naturally suggests itself. > > > n Sebastian > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, > Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - > Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), > Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of > the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > > From henry.jen at oracle.com Wed Oct 2 16:56:27 2013 From: henry.jen at oracle.com (Henry Jen) Date: Wed, 02 Oct 2013 16:56:27 -0700 Subject: RFR: 8023524: Mechanism to dump generated lambda classes / log lambda code generation In-Reply-To: <524C458D.8070907@gmail.com> References: <523945CF.9060804@oracle.com> <523994D1.8090200@redhat.com> <523A307E.6080202@oracle.com> <523AA764.60301@redhat.com> <52420B31.2070703@oracle.com> <524292AF.3020209@oracle.com> <5244BCD4.20002@oracle.com> <0934EECA-D02A-4C0D-977E-05C26792D29D@oracle.com> <524B54E4.9010506@oracle.com> <524B60B7.1060905@univ-mlv.fr> <518EFBE7-909E-42D9-B7BD-CF3CBDB408EE@oracle.com> <524BF320.8070807@univ-mlv.fr> <524C29EB.8010108@gmail.com> <524C2BE4.30602@univ-mlv.fr> <524C458D.8070907@gmail.com> Message-ID: <524CB2AB.305@oracle.com> Hi, Please review update of the webrev at http://cr.openjdk.java.net/~henryjen/ccc/8023524/4/webrev This update address comments from Remi and Peter, - Remove the unnecessary static field, also take out not needed singleton behavior of ProxyClassesDumper - Ensure InvalidPathException won't stop InnerClassLambdaMetaFactory - Change test code to create readonly directory that didn't work properly on Windows. Cheers, Henry From peter.levart at gmail.com Thu Oct 3 00:33:29 2013 From: peter.levart at gmail.com (Peter Levart) Date: Thu, 03 Oct 2013 09:33:29 +0200 Subject: RFR: 8023524: Mechanism to dump generated lambda classes / log lambda code generation In-Reply-To: <524CB2AB.305@oracle.com> References: <523945CF.9060804@oracle.com> <523994D1.8090200@redhat.com> <523A307E.6080202@oracle.com> <523AA764.60301@redhat.com> <52420B31.2070703@oracle.com> <524292AF.3020209@oracle.com> <5244BCD4.20002@oracle.com> <0934EECA-D02A-4C0D-977E-05C26792D29D@oracle.com> <524B54E4.9010506@oracle.com> <524B60B7.1060905@univ-mlv.fr> <518EFBE7-909E-42D9-B7BD-CF3CBDB408EE@oracle.com> <524BF320.8070807@univ-mlv.fr> <524C29EB.8010108@gmail.com> <524C2BE4.30602@univ-mlv.fr> <524C458D.8070907@gmail.com> <524CB2AB.305@oracle.com> Message-ID: <524D1DC9.9070208@gmail.com> Hi Henry, I think you want to revert the order of the following two lines in ProxyClassDumper: 67 isReadyToUse(); 68 dumpDir = tmp; Otherwise looks good now. The following is up to you. Just style nits... If you wanted to be extra user-friendly, you could log all transitions of "valid dir" -> "invalid dir" and vice versa. Like the following: private boolean isReadyToUse() { if (dumpDir == null) { return false; } String errMsg; if (!Files.exists(dumpDir)) { errMsg = "Directory " + dumpDir + " does not exist"; } else if (!Files.isDirectory(dumpDir)) { errMsg = "Path " + dumpDir + " is not a directory"; } else if (!Files.isWritable(dumpDir)) { errMsg = "Directory " + dumpDir + " is not writable"; } else { // show info message about re-validated directory if (invalidDir.getAndSet(false)) { PlatformLogger.getLogger(ProxyClassesDumper.class.getName()) .info("Directory " + dumpDir + " is writable directory now - dumping restored"); } // validated dump directory, ready to go return true; } // show warning message about invalidated directory if (! invalidDir.getAndSet(true)) { PlatformLogger.getLogger(ProxyClassesDumper.class.getName()) .warning(errMsg + " - dumping temporarily disabled"); } return false; } In constructor's exception handler, you could write: PlatformLogger.getLogger(ProxyClassesDumper.class.getName()) .warning("Path " + path + " is not valid - dumping permanently disabled", ex); You don't need .toString() calls for objects that are part of string concatenation expressions. It's done automatically for you. It's even more safe, since it can avoid NPE when any such object is null... Regards, Peter On 10/03/2013 01:56 AM, Henry Jen wrote: > Hi, > > Please review update of the webrev at > http://cr.openjdk.java.net/~henryjen/ccc/8023524/4/webrev > > This update address comments from Remi and Peter, > > - Remove the unnecessary static field, also take out not needed > singleton behavior of ProxyClassesDumper > - Ensure InvalidPathException won't stop InnerClassLambdaMetaFactory > - Change test code to create readonly directory that didn't work > properly on Windows. > > Cheers, > Henry From Sebastian.Millies at softwareag.com Thu Oct 3 01:20:46 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Thu, 3 Oct 2013 08:20:46 +0000 Subject: Enums of Lambdas In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7C74@HQMBX5.eur.ad.sag> Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7E76@HQMBX5.eur.ad.sag> no particular reason, just two strategies to do something. ? Sebastian From: Samir Talwar [mailto:samir at noodlesandwich.com] Sent: Thursday, October 03, 2013 12:31 AM To: Millies, Sebastian Cc: lambda-dev at openjdk.java.net Subject: Re: Enums of Lambdas // Sending again, because "Reply" doesn't reply to the list. Why does CalcAdd do slow multiplication? ? Samir. On Wed, Oct 2, 2013 at 7:59 PM, Millies, Sebastian > wrote: Hi there, what's the most elegant way to define an enum of lambdas? For example, this enum of BinaryOperators looks clumsy: public static enum Calc { CalcMult((n, m) -> n * m), CalcAdd((n, m) -> { int result = 0; for (int i = 0; i < n; i++) result += m; return result; }); private Calc(IntBinaryOperator op) { this.op = op; } private final IntBinaryOperator op; } I guess I'd perhaps be better off not using an enum at all, but just two static final members. n Sebastian Software AG - Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany - Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From Sebastian.Millies at softwareag.com Thu Oct 3 01:36:55 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Thu, 3 Oct 2013 08:36:55 +0000 Subject: OO design patterns vs FP idioms in Java 8 In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7858@HQMBX5.eur.ad.sag> <32F15738E8E5524DA4F01A0FA4A8E490C2FC7CB6@HQMBX5.eur.ad.sag> Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7EC0@HQMBX5.eur.ad.sag> that?s an interesting observation. However, I?d not like for the discussion to veer off towards the fundamentals of FP. Java is still mainly an OO language, only now that it has got lambdas, we might have more options to do things differently, without pretending that Java were like Haskell. Case in point: In the Template pattern, we might replace the abstract methods in the superclass by simple members (holding a lambda), getting rid of the subclassing. This could be either interpreted as ?absorbing? the pattern or just implementing it differently, the line is blurred, but it would still be recognizable, and perhaps more elegant or succinct. Another case: decorators are so obviously like functional composition that I doubt I?ll ever do them with constructors again. These ideas may have some practical relevance to Java programming. We may get new idioms. In contrast, I do not think we could immediately infer anything about the usefulness of the Visitor pattern in Java 8 from observing that in pure FP we do not have objects. (A discussion of purely functional data structures in Java, now that would be an entirely new topic.) n Sebastian From: Samir Talwar [mailto:samir at noodlesandwich.com] Sent: Thursday, October 03, 2013 12:38 AM To: Millies, Sebastian Cc: lambda-dev at openjdk.java.net Subject: Re: OO design patterns vs FP idioms in Java 8 The following should be taken with a grain of salt. I haven't read the Design Patterns book; this is just my observations from real-world usage, which is subject to argumentum ad anecdotum. I'd argue that the Visitor pattern becomes an anti-pattern in the functional paradigm. The visitor pattern is really a mechanism to selectively allow access to internal state and therefore decouple functions from the objects on which they act, which is necessary because of the "tell, don't ask" principle. Decomposition of data structures is encouraged in FP, so visitors aren't really necessary. We just have functions and data structures, not objects. ? Samir. On Wed, Oct 2, 2013 at 8:15 PM, Millies, Sebastian > wrote: after some more searching I discovered these two articles by Neal Ford in the ?Functional Thinking? on IBM developerworks. https://www.ibm.com/developerworks/java/library/j-ft10/index.html https://www.ibm.com/developerworks/java/library/j-ft11/ He says: In the functional-programming world, traditional design patterns generally manifest in one of three ways: 1. The pattern is absorbed by the language. 2. The pattern solution still exists in the functional paradigm, but the implementation details differ. 3. The solution is implemented using capabilities other languages or paradigms lack. (For example, many solutions that use metaprogramming are clean and elegant ? and they're not possible in Java.) My reading up to now could be summarized like this: ? Strategy o take functions that implement a strategy o provide functions to choose from ? Template and Factory Method o these patterns also relate to supplying concrete behavior ? Command o disappears, because object wrapper not needed for portable functionality ? Chain of Responsibility and Decorator o composition of (partial) functions ? Adaptor o adaptor classes can be conveniently replaced by (composable) lambdas ? Visitor o more complex, no direct correspondence o special case for streams: reduce I?d welcome any comments, additional examples of correspondences. n Sebastian From: Sebastian.Millies at softwareag.com Sent: Wednesday, October 02, 2013 10:08 AM To: lambda-dev at openjdk.java.net Subject: OO design patterns vs FP idioms in Java 8 Hi there, has anyone written about the relation of OO design patterns (by which I mean the usual GoF patterns) to functional programming idioms that may be applicable in Java 8? The reason I ask is that I think it's possible that ideas from FP may inform our approach to design patterns in the new Java release. I have searched Google a bit, but found no really coherent discussion. Much of it just boils down to higher order functions. For example, it seems obvious that Decorator (and Chain of Responsibility and Adapter, too) are forms of functional composition. Strategy is just passing a lambda that implements the concrete strategy. But other patterns are more complicated. Visitor is often cited as being fold, which is almost reduce in separating the traversal, in this case of a stream, from the algorithm operating on the stream elements. But would this carry over to other structures than streams in Java 8? Some typical FP things would clearly be inappropriate in Java. Obviously, Java is not being transformed into Haskell, and I don?t expect to use monadic programming instead of throwing exceptions ;-) However, other FP ideas may now be really viable in Java. I suspect this might be off-topic for this list, as it?s a bit speculative. But I find the question just naturally suggests itself. n Sebastian Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From asviraspossible at gmail.com Thu Oct 3 02:08:02 2013 From: asviraspossible at gmail.com (Victor Nazarov) Date: Thu, 3 Oct 2013 13:08:02 +0400 Subject: OO design patterns vs FP idioms in Java 8 In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7858@HQMBX5.eur.ad.sag> <32F15738E8E5524DA4F01A0FA4A8E490C2FC7CB6@HQMBX5.eur.ad.sag> Message-ID: I've always percept Visitor-pattern as an implementation of Algebraic Data Types in Java-like languages. Visitor-pattern is just an implementation of pattern-matching on ADT-constructors, and this is already present as language-level feature in all ML-like languages (including Haskell). Victor Nazarov On Thu, Oct 3, 2013 at 2:37 AM, Samir Talwar wrote: > The following should be taken with a grain of salt. I haven't read the > Design Patterns book; this is just my observations from real-world usage, > which is subject to argumentum ad anecdotum. > > I'd argue that the Visitor pattern becomes an anti-pattern in the > functional paradigm. The visitor pattern is really a mechanism to > selectively allow access to internal state and therefore decouple functions > from the objects on which they act, which is necessary because of the > "tell, don't ask" principle. Decomposition of data structures is encouraged > in FP, so visitors aren't really necessary. We just have functions and data > structures, not objects. > > ? Samir. > > > On Wed, Oct 2, 2013 at 8:15 PM, Millies, Sebastian < > Sebastian.Millies at softwareag.com> wrote: > > > after some more searching I discovered these two articles by Neal Ford in > > the ?Functional Thinking? on IBM developerworks. > > https://www.ibm.com/developerworks/java/library/j-ft10/index.html > > https://www.ibm.com/developerworks/java/library/j-ft11/ > > > > He says: > > > > In the functional-programming world, traditional design patterns > generally > > manifest in one of three ways: > > > > 1. The pattern is absorbed by the language. > > > > 2. The pattern solution still exists in the functional paradigm, but > > the implementation details differ. > > > > 3. The solution is implemented using capabilities other languages or > > paradigms lack. (For example, many solutions that use metaprogramming are > > clean and elegant ? and they're not possible in Java.) > > > > My reading up to now could be summarized like this: > > > > > > ? Strategy > > > > o take functions that implement a strategy > > > > o provide functions to choose from > > > > ? Template and Factory Method > > > > o these patterns also relate to supplying concrete behavior > > > > ? Command > > > > o disappears, because object wrapper not needed for portable > > functionality > > > > ? Chain of Responsibility and Decorator > > > > o composition of (partial) functions > > > > ? Adaptor > > > > o adaptor classes can be conveniently replaced by (composable) lambdas > > > > ? Visitor > > > > o more complex, no direct correspondence > > > > o special case for streams: reduce > > > > I?d welcome any comments, additional examples of correspondences. > > > > > > n Sebastian > > > > > > > > From: Sebastian.Millies at softwareag.com > > Sent: Wednesday, October 02, 2013 10:08 AM > > To: lambda-dev at openjdk.java.net > > Subject: OO design patterns vs FP idioms in Java 8 > > > > Hi there, > > > > has anyone written about the relation of OO design patterns (by which I > > mean the usual GoF patterns) to functional programming idioms that may be > > applicable in Java 8? The reason I ask is that I think it's possible that > > ideas from FP may inform our approach to design patterns in the new Java > > release. I have searched Google a bit, but found no really coherent > > discussion. > > > > Much of it just boils down to higher order functions. For example, it > > seems obvious that Decorator (and Chain of Responsibility and Adapter, > too) > > are forms of functional composition. Strategy is just passing a lambda > that > > implements the concrete strategy. > > > > But other patterns are more complicated. Visitor is often cited as being > > fold, which is almost reduce in separating the traversal, in this case > of a > > stream, from the algorithm operating on the stream elements. But would > this > > carry over to other structures than streams in Java 8? > > > > Some typical FP things would clearly be inappropriate in Java. Obviously, > > Java is not being transformed into Haskell, and I don?t expect to use > > monadic programming instead of throwing exceptions ;-) However, other FP > > ideas may now be really viable in Java. > > > > I suspect this might be off-topic for this list, as it?s a bit > > speculative. But I find the question just naturally suggests itself. > > > > > > n Sebastian > > > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, > > Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - > > Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), > > Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of > > the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > > > > > > > From paul.sandoz at oracle.com Thu Oct 3 09:00:18 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Thu, 03 Oct 2013 16:00:18 +0000 Subject: hg: lambda/lambda/jdk: Refinement of flatMap example and other minor changes/fixes. Message-ID: <20131003160119.30ADF62D01@hg.openjdk.java.net> Changeset: 36b11e7a765d Author: psandoz Date: 2013-10-03 17:59 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/36b11e7a765d Refinement of flatMap example and other minor changes/fixes. ! src/share/classes/java/util/stream/Stream.java From henry.jen at oracle.com Thu Oct 3 11:37:40 2013 From: henry.jen at oracle.com (Henry Jen) Date: Thu, 03 Oct 2013 11:37:40 -0700 Subject: RFR: 8023524: Mechanism to dump generated lambda classes / log lambda code generation In-Reply-To: <524D1DC9.9070208@gmail.com> References: <523945CF.9060804@oracle.com> <523994D1.8090200@redhat.com> <523A307E.6080202@oracle.com> <523AA764.60301@redhat.com> <52420B31.2070703@oracle.com> <524292AF.3020209@oracle.com> <5244BCD4.20002@oracle.com> <0934EECA-D02A-4C0D-977E-05C26792D29D@oracle.com> <524B54E4.9010506@oracle.com> <524B60B7.1060905@univ-mlv.fr> <518EFBE7-909E-42D9-B7BD-CF3CBDB408EE@oracle.com> <524BF320.8070807@univ-mlv.fr> <524C29EB.8010108@gmail.com> <524C2BE4.30602@univ-mlv.fr> <524C458D.8070907@gmail.com> <524CB2AB.305@oracle.com> <524D1DC9.9070208@gmail.com> Message-ID: <524DB974.9040805@oracle.com> OK, hopefully we are close to the end here on comments, unless there are security related issues. We still need +1 from a jdk8 "reviewer", http://cr.openjdk.java.net/~henryjen/ccc/8023524/5/webrev This update include what Peter's latest suggestion, and since we don't have a reliable way to create read-only directory on Windows, we simply skip the test on non-posix filesystems, that is, Windows. Cheers, Henry From esko.luontola at gmail.com Thu Oct 3 13:09:10 2013 From: esko.luontola at gmail.com (Esko Luontola) Date: Thu, 03 Oct 2013 23:09:10 +0300 Subject: OO design patterns vs FP idioms in Java 8 In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC7858@HQMBX5.eur.ad.sag> <32F15738E8E5524DA4F01A0FA4A8E490C2FC7CB6@HQMBX5.eur.ad.sag> Message-ID: <524DCEE6.9010600@gmail.com> Victor Nazarov wrote on 3.10.2013 12:08: > I've always percept Visitor-pattern as an implementation of Algebraic Data > Types in Java-like languages. Visitor-pattern is just an implementation of > pattern-matching on ADT-constructors, and this is already present as > language-level feature in all ML-like languages (including Haskell). Me too. I've implemented an actor framework (http://jumi.fi/actors.html) that relies on the Visitor pattern*; because Java doesn't have pattern matching, the natural way of receiving messages is by implementing an interface. * Or maybe the Visitor pattern emerges from the use of Event Sourcing and this actor framework; the system that uses those actors is based on Event Sourcing, so in the UI layer visitors are needed to calculate the system state from the events. -- Esko Luontola www.orfjackal.net From paul.sandoz at oracle.com Fri Oct 4 05:01:00 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Fri, 04 Oct 2013 12:01:00 +0000 Subject: hg: lambda/lambda/jdk: Clarify *match docs. Message-ID: <20131004120226.6C65862D6D@hg.openjdk.java.net> Changeset: 429a9675ee7d Author: psandoz Date: 2013-10-04 14:00 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/429a9675ee7d Clarify *match docs. ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From paul.sandoz at oracle.com Fri Oct 4 05:18:43 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Fri, 04 Oct 2013 12:18:43 +0000 Subject: hg: lambda/lambda/jdk: Clarify docs for supplier factory methods on StreamSupport. Message-ID: <20131004121908.E997262D71@hg.openjdk.java.net> Changeset: 4e7bce1f8582 Author: psandoz Date: 2013-10-04 14:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4e7bce1f8582 Clarify docs for supplier factory methods on StreamSupport. ! src/share/classes/java/util/stream/StreamSupport.java From paul.sandoz at oracle.com Fri Oct 4 07:01:21 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Fri, 04 Oct 2013 14:01:21 +0000 Subject: hg: lambda/lambda/jdk: Fix imports. Message-ID: <20131004140150.5799C62D78@hg.openjdk.java.net> Changeset: dcd2af89ca24 Author: psandoz Date: 2013-10-04 16:00 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/dcd2af89ca24 Fix imports. ! test/java/util/Random/RandomTest.java From henry.jen at oracle.com Fri Oct 4 15:09:35 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Fri, 04 Oct 2013 22:09:35 +0000 Subject: hg: lambda/lambda/jdk: clean up diff against tl Message-ID: <20131004220947.1C15B62D9A@hg.openjdk.java.net> Changeset: a10b7707b4dd Author: henryjen Date: 2013-10-04 15:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a10b7707b4dd clean up diff against tl ! test/java/util/stream/bootlib/java/util/stream/LoggingTestCase.java ! test/java/util/stream/boottest/java/util/stream/SliceSpliteratorTest.java From henry.jen at oracle.com Fri Oct 4 16:13:55 2013 From: henry.jen at oracle.com (Henry Jen) Date: Fri, 04 Oct 2013 16:13:55 -0700 Subject: RFR: 8025968: Integrate test improvements made in lambda repo Message-ID: <524F4BB3.40509@oracle.com> Hi, Please review a port from lambda repo to tl, it contains a refactoring of OpTestCase and a small addition to fill test gap. http://cr.openjdk.java.net/~henryjen/tl/8025968/0/webrev/ Cheers, Henry From v.a.ammodytes at googlemail.com Fri Oct 4 18:25:23 2013 From: v.a.ammodytes at googlemail.com (Arne Siegel) Date: Sat, 5 Oct 2013 03:25:23 +0200 Subject: stream.parallel().limit() not usable Message-ID: Hi, I want to share some results of trying out Java 8 features. All code examples were compiled and run with jdk-8-ea-bin-b109-windows-x64-26_sep_2013. A class containing all tested implementation variants is attached to this e-mail (hope it won't get eaten by the mail system). The following type of program will be occuring frequently: while (elementsGenerated < maxToGenerate && elementsConsumed < needed) { T element = generatorFunction.get(); elementsGenerated++; if (condition.test(element)) { action.accept(element); elementsConsumed++; } } In the scenario I concentrate on, "maxToGenerate" and "needed" are equal to 1000000, the generatorFunction and the action are fairly expensive, while the condition is cheap. Naturally, I wanted to use all available processors to speed up this computation. Using ExecutorService and about two dozen more lines of code, this could be achieved with fairly low effort. For my scenario this change improves performance about 5.5 times on 8 processor cores. In Java 8, the above code can be converted to a nice simple serial stream, with roughly the same performance as the while-loop-based serial implementation: IntStream.range(0, maxToGenerate) .mapToObj(i -> generatorFunction.get()) .filter(condition::test) .limit(needed) .forEach(action::accept); Unfortunately, naively trying to convert this to a parallel computation has the opposite effect on performance. All cores go to 100% for minutes (hours? haven't waited long enough); the program doesn't terminate in acceptable time. Here's it: // won't terminate quickly - don't use IntStream.range(0, maxToGenerate) .parallel() .mapToObj(i -> generatorFunction.get()) .filter(condition::test) .limit(needed) .forEach(action::accept); Apparently, the main cause is that the limit operation does not do short-circuiting. The only stream operations doing short-circuiting are findFirst and findAny, and these return only at most one element. For completeness I want to show how I could rewrite the code using a streams-based implementation: final AtomicInteger elementsConsumed = new AtomicInteger(0); IntStream.range(0, maxToGenerate) .parallel() .mapToObj(i -> generatorFunction.get()) .filter(condition::test) .peek(action::accept) .mapToInt(element -> elementsConsumed.incrementAndGet()) .filter(n -> n >= needed) .findFirst(); In my scenario, this type of code runs about 5.0 times faster than the serial loop and the serial stream, which is still a huge improvement, but about 10% less efficient than the ExecutorService-based implementation. This variant of the code snippet, while being quite impure, also has the disadvantage that it may do some more calls to the action than requested. The application will have to cater for that, if it cannot be ignored. I don't believe very strongly that anything can be done about the observed behaviour before the release of Java 8, but the community should be aware of it, and maybe in a later release this and certain other sequences of stream operations could be optimized or some other solution found. Arne Siegel From brian.goetz at oracle.com Sat Oct 5 00:36:14 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 5 Oct 2013 08:36:14 +0100 Subject: stream.parallel().limit() not usable In-Reply-To: References: Message-ID: <8914B7B8-141B-4921-BA69-F015A1E12DEB@oracle.com> A slight correction -- the limit operation does do short-circuiting, but there are other things that cause the behavior you observe, and this doesn't undermine your observation. But the results are not surprising, nor are they Some more observations: 1. We can reduce the barrier to parallelization, but that doesn't make it simple. Parallelism is a tradeoff of burning more cycles for the hope of getting to a faster wall-clock result. But since a parallel solution *always* is more work than a serial solution (pause and prove this for yourself), parallelism is not guaranteed to be faster. 2. We all come to the table with sequential goggles on. We need to aspire to removing them. Particularly, our sequential goggles give us the wrong intuition about limit() -- that it should be a cheap and trivial operation. 3. Limit embodies the worst possible constraint on parallel operations -- it is constrained to operate in encounter order. This is death for a parallel operation. This interacts nastily with point (2). Limit doesn't mean "limit the result to N", it means "limit the result to the FIRST N". If the stream is sized/subsized (i.e., decomposes predictably and all operations are size-preserving), then limit can be fast. If the stream is unordered, limit can be fast, as this busts the crippling restriction of encounter order. Other cases are exposed to the full complexity of asking for a order-constrained parallel operation. Think about how limit() would have to work. You want to use parallelism, presumably because generating the elements is expensive enough that it would benefit from parallelism. So we start generating elements in parallel, but when we decompose the source, we don't necessarily know whether a given element falls inside or outside the limit range unless we've already computed all the elements to its left. So we buffer the intermediate result, until we have enough elements, cancel the remaining tasks, and return the selected elements. If N is large, we'll be buffering a LOT of elements. Bottom line: there's a mismatch between what limit really means and what people think it means / want it to mean. People want limit() to be an afterthought -- "by the way, if you find more than N, dont return more than that." But it is actually something much more restrictive. In a lot of cases like you describe, unordered() will help. If you're just trying to generate N as fast as you can, removing the ordering constraint will do the job. The problem is that users are familar with limit() but not with the interaction of ordering and parallelism. At worst, you could describe limit() as an "attractive nuisance" -- users think it is less dangerous than it is, and will reach for it intuitively, and burn themselves. What are our options? We could remove it. People would hate that. We could make it implicitly unordered, like forEach. I think people would find that highly counterintuitive. I think the best we can do is include more explanatory text in the javadoc for limit() and hope people read it. On Oct 5, 2013, at 2:25 AM, Arne Siegel wrote: > Hi, > > I want to share some results of trying out Java 8 features. All code > examples were compiled and run with > jdk-8-ea-bin-b109-windows-x64-26_sep_2013. A class containing all tested > implementation variants is attached to this e-mail (hope it won't get eaten > by the mail system). > > > The following type of program will be occuring frequently: > > while (elementsGenerated < maxToGenerate && elementsConsumed < > needed) { > T element = generatorFunction.get(); > elementsGenerated++; > if (condition.test(element)) { > action.accept(element); > elementsConsumed++; > } > } > > In the scenario I concentrate on, "maxToGenerate" and "needed" are equal to > 1000000, the generatorFunction and the action are fairly expensive, while > the condition is cheap. > > Naturally, I wanted to use all available processors to speed up this > computation. Using ExecutorService and about two dozen more lines of code, > this could be achieved with fairly low effort. For my scenario this change > improves performance about 5.5 times on 8 processor cores. > > In Java 8, the above code can be converted to a nice simple serial stream, > with roughly the same performance as the while-loop-based serial > implementation: > > IntStream.range(0, maxToGenerate) > .mapToObj(i -> generatorFunction.get()) > .filter(condition::test) > .limit(needed) > .forEach(action::accept); > > Unfortunately, naively trying to convert this to a parallel computation has > the opposite effect on performance. All cores go to 100% for minutes > (hours? haven't waited long enough); the program doesn't terminate in > acceptable time. Here's it: > > // won't terminate quickly - don't use > IntStream.range(0, maxToGenerate) > .parallel() > .mapToObj(i -> generatorFunction.get()) > .filter(condition::test) > .limit(needed) > .forEach(action::accept); > > Apparently, the main cause is that the limit operation does not do > short-circuiting. The only stream operations doing short-circuiting are > findFirst and findAny, and these return only at most one element. > > For completeness I want to show how I could rewrite the code using a > streams-based implementation: > > final AtomicInteger elementsConsumed = new AtomicInteger(0); > IntStream.range(0, maxToGenerate) > .parallel() > .mapToObj(i -> generatorFunction.get()) > .filter(condition::test) > .peek(action::accept) > .mapToInt(element -> > elementsConsumed.incrementAndGet()) > .filter(n -> n >= needed) > .findFirst(); > > In my scenario, this type of code runs about 5.0 times faster than the > serial loop and the serial stream, which is still a huge improvement, but > about 10% less efficient than the ExecutorService-based implementation. > > This variant of the code snippet, while being quite impure, also has the > disadvantage that it may do some more calls to the action than requested. > The application will have to cater for that, if it cannot be ignored. > > > I don't believe very strongly that anything can be done about the observed > behaviour before the release of Java 8, but the community should be aware > of it, and maybe in a later release this and certain other sequences of > stream operations could be optimized or some other solution found. > > Arne Siegel > From brian.goetz at oracle.com Sat Oct 5 00:49:26 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 5 Oct 2013 08:49:26 +0100 Subject: stream.parallel().limit() not usable In-Reply-To: <8914B7B8-141B-4921-BA69-F015A1E12DEB@oracle.com> References: <8914B7B8-141B-4921-BA69-F015A1E12DEB@oracle.com> Message-ID: <953E3A7A-3E4A-4F52-9F8E-AD354CD0B19B@oracle.com> Here's some concrete advice for streams with limit(): If N is smallish, you're generally fine with parallel. Short-circuiting will kick in once you've got your results, and cancel the remaining tasks. If upstream operations are expensive, you'll get value out of the parallelism. If N is large, you're asking for a lot of additional work. Unless generation is obscenely expensive, this will likely not be a good tradeoff. In this case, you have some choices: - Use unordered -- when you just want N and don't care about the *first* N. This parallelizes cleanly. - Use sequential -- when your stream has unpredictable size+decomposition characteristics (source doesn't decompose perfectly, or pipeline has unpredictable size because of operations like filter) On Oct 5, 2013, at 8:36 AM, Brian Goetz wrote: > A slight correction -- the limit operation does do short-circuiting, but there are other things that cause the behavior you observe, and this doesn't undermine your observation. But the results are not surprising, nor are they > > Some more observations: > > 1. We can reduce the barrier to parallelization, but that doesn't make it simple. Parallelism is a tradeoff of burning more cycles for the hope of getting to a faster wall-clock result. But since a parallel solution *always* is more work than a serial solution (pause and prove this for yourself), parallelism is not guaranteed to be faster. > > 2. We all come to the table with sequential goggles on. We need to aspire to removing them. Particularly, our sequential goggles give us the wrong intuition about limit() -- that it should be a cheap and trivial operation. > > 3. Limit embodies the worst possible constraint on parallel operations -- it is constrained to operate in encounter order. This is death for a parallel operation. This interacts nastily with point (2). Limit doesn't mean "limit the result to N", it means "limit the result to the FIRST N". > > If the stream is sized/subsized (i.e., decomposes predictably and all operations are size-preserving), then limit can be fast. If the stream is unordered, limit can be fast, as this busts the crippling restriction of encounter order. Other cases are exposed to the full complexity of asking for a order-constrained parallel operation. > > Think about how limit() would have to work. You want to use parallelism, presumably because generating the elements is expensive enough that it would benefit from parallelism. So we start generating elements in parallel, but when we decompose the source, we don't necessarily know whether a given element falls inside or outside the limit range unless we've already computed all the elements to its left. So we buffer the intermediate result, until we have enough elements, cancel the remaining tasks, and return the selected elements. If N is large, we'll be buffering a LOT of elements. > > Bottom line: there's a mismatch between what limit really means and what people think it means / want it to mean. People want limit() to be an afterthought -- "by the way, if you find more than N, dont return more than that." But it is actually something much more restrictive. > > In a lot of cases like you describe, unordered() will help. If you're just trying to generate N as fast as you can, removing the ordering constraint will do the job. The problem is that users are familar with limit() but not with the interaction of ordering and parallelism. > > At worst, you could describe limit() as an "attractive nuisance" -- users think it is less dangerous than it is, and will reach for it intuitively, and burn themselves. What are our options? We could remove it. People would hate that. We could make it implicitly unordered, like forEach. I think people would find that highly counterintuitive. I think the best we can do is include more explanatory text in the javadoc for limit() and hope people read it. > > > On Oct 5, 2013, at 2:25 AM, Arne Siegel wrote: > >> Hi, >> >> I want to share some results of trying out Java 8 features. All code >> examples were compiled and run with >> jdk-8-ea-bin-b109-windows-x64-26_sep_2013. A class containing all tested >> implementation variants is attached to this e-mail (hope it won't get eaten >> by the mail system). >> >> >> The following type of program will be occuring frequently: >> >> while (elementsGenerated < maxToGenerate && elementsConsumed < >> needed) { >> T element = generatorFunction.get(); >> elementsGenerated++; >> if (condition.test(element)) { >> action.accept(element); >> elementsConsumed++; >> } >> } >> >> In the scenario I concentrate on, "maxToGenerate" and "needed" are equal to >> 1000000, the generatorFunction and the action are fairly expensive, while >> the condition is cheap. >> >> Naturally, I wanted to use all available processors to speed up this >> computation. Using ExecutorService and about two dozen more lines of code, >> this could be achieved with fairly low effort. For my scenario this change >> improves performance about 5.5 times on 8 processor cores. >> >> In Java 8, the above code can be converted to a nice simple serial stream, >> with roughly the same performance as the while-loop-based serial >> implementation: >> >> IntStream.range(0, maxToGenerate) >> .mapToObj(i -> generatorFunction.get()) >> .filter(condition::test) >> .limit(needed) >> .forEach(action::accept); >> >> Unfortunately, naively trying to convert this to a parallel computation has >> the opposite effect on performance. All cores go to 100% for minutes >> (hours? haven't waited long enough); the program doesn't terminate in >> acceptable time. Here's it: >> >> // won't terminate quickly - don't use >> IntStream.range(0, maxToGenerate) >> .parallel() >> .mapToObj(i -> generatorFunction.get()) >> .filter(condition::test) >> .limit(needed) >> .forEach(action::accept); >> >> Apparently, the main cause is that the limit operation does not do >> short-circuiting. The only stream operations doing short-circuiting are >> findFirst and findAny, and these return only at most one element. >> >> For completeness I want to show how I could rewrite the code using a >> streams-based implementation: >> >> final AtomicInteger elementsConsumed = new AtomicInteger(0); >> IntStream.range(0, maxToGenerate) >> .parallel() >> .mapToObj(i -> generatorFunction.get()) >> .filter(condition::test) >> .peek(action::accept) >> .mapToInt(element -> >> elementsConsumed.incrementAndGet()) >> .filter(n -> n >= needed) >> .findFirst(); >> >> In my scenario, this type of code runs about 5.0 times faster than the >> serial loop and the serial stream, which is still a huge improvement, but >> about 10% less efficient than the ExecutorService-based implementation. >> >> This variant of the code snippet, while being quite impure, also has the >> disadvantage that it may do some more calls to the action than requested. >> The application will have to cater for that, if it cannot be ignored. >> >> >> I don't believe very strongly that anything can be done about the observed >> behaviour before the release of Java 8, but the community should be aware >> of it, and maybe in a later release this and certain other sequences of >> stream operations could be optimized or some other solution found. >> >> Arne Siegel >> > > From brian.goetz at oracle.com Sat Oct 5 09:12:33 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 5 Oct 2013 17:12:33 +0100 Subject: stream.parallel().limit() not usable In-Reply-To: References: Message-ID: <38FFA99B-975B-4107-BD92-CF21BB36901F@oracle.com> > For completeness I want to show how I could rewrite the code using a > streams-based implementation: > > final AtomicInteger elementsConsumed = new AtomicInteger(0); > IntStream.range(0, maxToGenerate) > .parallel() > .mapToObj(i -> generatorFunction.get()) > .filter(condition::test) > .peek(action::accept) > .mapToInt(element -> > elementsConsumed.incrementAndGet()) > .filter(n -> n >= needed) > .findFirst(); If this code works for you, then what you're saying is that you don't care about order. Which I believe. In which case, just use .unordered() in your stream and you'll get good parallelism without having to contort your code. Try it and report back? You might also do better with Stream.generate, since it creates an unordered stream: Stream.generate(generatorFunction) .parallel() ... From Sebastian.Millies at softwareag.com Sat Oct 5 10:54:57 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Sat, 5 Oct 2013 17:54:57 +0000 Subject: Stream#generate() vs. iterate() Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC8829@HQMBX5.eur.ad.sag> I'm a bit confused, perhaps it's just terminology: Looking at the Javadoc (in b106) for Stream#generate(Supplier) it says it returns a sequential stream. In your post you say it returns an unordered stream. In what way can a sequential stream be unordered? -- Sebastian -----Original Message----- From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Brian Goetz Sent: Saturday, October 05, 2013 6:13 PM To: Arne Siegel Cc: lambda-dev at openjdk.java.net Subject: Re: stream.parallel().limit() not usable [snip] You might also do better with Stream.generate, since it creates an unordered stream: Stream.generate(generatorFunction) .parallel() ... Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From brian.goetz at oracle.com Sat Oct 5 12:55:33 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 5 Oct 2013 20:55:33 +0100 Subject: Stream#generate() vs. iterate() In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC8829@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC8829@HQMBX5.eur.ad.sag> Message-ID: Sequential and unordered are orthogonal characteristics. Ordered/unordered means that the source has a natural encounter order, and that stream operations should respect that order. For example, lists and arrays have a natural encounter order; they have a first element, a second element, etc. Whereas a HashSet has no natural encounter order; processing the elements in one order is as good as any other. Sequential/parallel has to do with whether the stream operations will execute sequentially or in parallel when the terminal operation is initiated. generate() returns a sequential, unordered stream. You can turn that into a parallel, unordered stream with generate(f).parallel(). On Oct 5, 2013, at 6:54 PM, Millies, Sebastian wrote: > I'm a bit confused, perhaps it's just terminology: > > Looking at the Javadoc (in b106) for Stream#generate(Supplier) it says it returns a sequential stream. > In your post you say it returns an unordered stream. In what way can a sequential stream be unordered? > > -- Sebastian > > -----Original Message----- > From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Brian Goetz > Sent: Saturday, October 05, 2013 6:13 PM > To: Arne Siegel > Cc: lambda-dev at openjdk.java.net > Subject: Re: stream.parallel().limit() not usable > > [snip] > > You might also do better with Stream.generate, since it creates an unordered stream: > > Stream.generate(generatorFunction) > .parallel() > ... > > > > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > From Sebastian.Millies at softwareag.com Sun Oct 6 01:25:45 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Sun, 6 Oct 2013 08:25:45 +0000 Subject: Natural Encounter Order (was RE: Stream#generate() vs. iterate()) Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC8A20@HQMBX5.eur.ad.sag> Thanks for that information. Part of my confusion may be just a language thing. I'd call the property of having a first, second etc. element "indexed", not "ordered". In German, "ordered" is more akin to "sorted". (But perhaps even in English, cf. SQL ORDER BY clause?). For that reason, I'd not have expected to have to unorder() a stream that had never been explicitly sort() 'ed. Or in other words, I'd have expected sorted()/unordered() and sequential()/parallel() to be pairs of operations that converted along the two dimensions, with "unordered sequential" always the default unless explicitly coded otherwise. Setting aside the choice of words, is there some rigorous definition of "natural encounter order" that will let me know whether a stream will in fact be ordered or unordered when I create it? Consider the following: TreeSet t = new TreeSet<>(); HashSet h = new HashSet<>(); Set s; s = t; Stream tStream = s.parallelStream(); assert(tStream.spliterator().hasCharacteristics(Spliterator.ORDERED)) ; s = h; Stream hStream = s.parallelStream(); assert( ! hStream.spliterator().hasCharacteristics(Spliterator.ORDERED)); Usually having a Set reference I will not know whether the object has been created a TreeSet or HashSet. Similarly, having a Map.EntrySet I will usually not know whether the underlying Map was a LinkedHashMap. So for good parallel performance I will be forced to always explicitly call unordered(), or conduct that complicated test on the spliterator's characteristics. Unless I'm overlooking something, I am not happy with the concept "natural encounter order", because it seems unknowable. -- Sebastian > -----Original Message----- > From: Brian Goetz [mailto:brian.goetz at oracle.com] > Sent: Saturday, October 05, 2013 9:56 PM > To: Millies, Sebastian > Cc: lambda-dev at openjdk.java.net > Subject: Re: Stream#generate() vs. iterate() > > Sequential and unordered are orthogonal characteristics. > > Ordered/unordered means that the source has a natural encounter order, and that > stream operations should respect that order. For example, lists and arrays have a > natural encounter order; they have a first element, a second element, etc. Whereas > a HashSet has no natural encounter order; processing the elements in one order is as > good as any other. > > Sequential/parallel has to do with whether the stream operations will execute > sequentially or in parallel when the terminal operation is initiated. > > generate() returns a sequential, unordered stream. You can turn that into a parallel, > unordered stream with generate(f).parallel(). > > On Oct 5, 2013, at 6:54 PM, Millies, Sebastian wrote: > > > I'm a bit confused, perhaps it's just terminology: > > > > Looking at the Javadoc (in b106) for Stream#generate(Supplier) it says it returns a > sequential stream. > > In your post you say it returns an unordered stream. In what way can a sequential > stream be unordered? > > > > -- Sebastian > > > > -----Original Message----- > > From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev- > bounces at openjdk.java.net] On Behalf Of Brian Goetz > > Sent: Saturday, October 05, 2013 6:13 PM > > To: Arne Siegel > > Cc: lambda-dev at openjdk.java.net > > Subject: Re: stream.parallel().limit() not usable > > > > [snip] > > > > You might also do better with Stream.generate, since it creates an unordered > stream: > > > > Stream.generate(generatorFunction) > > .parallel() > > ... > > > > > > > > > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany > ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management > Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd > Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas > Bereczky - http://www.softwareag.com > > > > From samir at noodlesandwich.com Sun Oct 6 01:44:58 2013 From: samir at noodlesandwich.com (Samir Talwar) Date: Sun, 6 Oct 2013 09:44:58 +0100 Subject: Natural Encounter Order (was RE: Stream#generate() vs. iterate()) In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC8A20@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC8A20@HQMBX5.eur.ad.sag> Message-ID: A few things. Firstly, in your example you used the `range` method, which is both ordered and sorted by definition. While it hasn't been explicitly sorted, not keeping it sorted as a steam would confuse and surprise pretty much everyone. On that topic: "ordered" and "sorted" mean different things, "ordered" meaning the same thing as "indexed", although with less attention paid to implementation. As you saw, a TreeSet is both ordered and sorted, whereas a HashSet is neither. Lists and arrays are ordered but not necessarily sorted; for example, `ImmutableList.of(1, 5, 2, 6, 3)` is ordered, but clearly unsorted. Lastly, there's no harm in throwing in a call to `unordered` whenever you're not fussed about order for whatever reason. My understanding is that if the stream is already unordered, it will just return itself. ? Samir. On 6 Oct 2013 09:28, "Millies, Sebastian" wrote: > Thanks for that information. Part of my confusion may be just a language > thing. I'd call the property > of having a first, second etc. element "indexed", not "ordered". In > German, "ordered" is more akin to > "sorted". (But perhaps even in English, cf. SQL ORDER BY clause?). > > For that reason, I'd not have expected to have to unorder() a stream that > had never been > explicitly sort() 'ed. > > Or in other words, I'd have expected sorted()/unordered() and > sequential()/parallel() to > be pairs of operations that converted along the two dimensions, with > "unordered sequential" always > the default unless explicitly coded otherwise. > > Setting aside the choice of words, is there some rigorous definition of > "natural encounter order" that > will let me know whether a stream will in fact be ordered or unordered > when I create it? > Consider the following: > > TreeSet t = new TreeSet<>(); > HashSet h = new HashSet<>(); > Set s; > > s = t; > Stream tStream = s.parallelStream(); > > assert(tStream.spliterator().hasCharacteristics(Spliterator.ORDERED)) ; > > s = h; > Stream hStream = s.parallelStream(); > assert( ! > hStream.spliterator().hasCharacteristics(Spliterator.ORDERED)); > > Usually having a Set reference I will not know whether the object has been > created > a TreeSet or HashSet. Similarly, having a Map.EntrySet I will usually not > know whether the > underlying Map was a LinkedHashMap. So for good parallel performance I > will be forced > to always explicitly call unordered(), or conduct that complicated test on > the spliterator's > characteristics. Unless I'm overlooking something, I am not happy with > the concept "natural > encounter order", because it seems unknowable. > > -- Sebastian > > > -----Original Message----- > > From: Brian Goetz [mailto:brian.goetz at oracle.com] > > Sent: Saturday, October 05, 2013 9:56 PM > > To: Millies, Sebastian > > Cc: lambda-dev at openjdk.java.net > > Subject: Re: Stream#generate() vs. iterate() > > > > Sequential and unordered are orthogonal characteristics. > > > > Ordered/unordered means that the source has a natural encounter order, > and that > > stream operations should respect that order. For example, lists and > arrays have a > > natural encounter order; they have a first element, a second element, > etc. Whereas > > a HashSet has no natural encounter order; processing the elements in one > order is as > > good as any other. > > > > Sequential/parallel has to do with whether the stream operations will > execute > > sequentially or in parallel when the terminal operation is initiated. > > > > generate() returns a sequential, unordered stream. You can turn that > into a parallel, > > unordered stream with generate(f).parallel(). > > > > On Oct 5, 2013, at 6:54 PM, Millies, Sebastian wrote: > > > > > I'm a bit confused, perhaps it's just terminology: > > > > > > Looking at the Javadoc (in b106) for Stream#generate(Supplier) it says > it returns a > > sequential stream. > > > In your post you say it returns an unordered stream. In what way can a > sequential > > stream be unordered? > > > > > > -- Sebastian > > > > > > -----Original Message----- > > > From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev- > > bounces at openjdk.java.net] On Behalf Of Brian Goetz > > > Sent: Saturday, October 05, 2013 6:13 PM > > > To: Arne Siegel > > > Cc: lambda-dev at openjdk.java.net > > > Subject: Re: stream.parallel().limit() not usable > > > > > > [snip] > > > > > > You might also do better with Stream.generate, since it creates an > unordered > > stream: > > > > > > Stream.generate(generatorFunction) > > > .parallel() > > > ... > > > > > > > > > > > > > > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 > Darmstadt, Germany > > ? Registergericht/Commercial register: Darmstadt HRB 1562 - > Vorstand/Management > > Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, > Arnd > > Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory > Board: Dr. Andreas > > Bereczky - http://www.softwareag.com > > > > > > > > > From brian.goetz at oracle.com Sun Oct 6 02:38:06 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Sun, 6 Oct 2013 10:38:06 +0100 Subject: Natural Encounter Order (was RE: Stream#generate() vs. iterate()) In-Reply-To: References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC8A20@HQMBX5.eur.ad.sag> Message-ID: <793BD361-BD99-412A-B558-49761DC7D35F@oracle.com> Yes, you've hit the point exactly. If you don't care about order in the answer, you can always call unordered - and this is cheap - if you are going to do a parallel op that might be constrained by ordering. But the key is, you, the user , are the only one who knows whether you care about ordering or not. So we can't guess. If you don't care, tell us so, and we can give you a possibly faster execution. Sent from my iPhone On Oct 6, 2013, at 9:44 AM, Samir Talwar wrote: > A few things. > > Firstly, in your example you used the `range` method, which is both ordered > and sorted by definition. While it hasn't been explicitly sorted, not > keeping it sorted as a steam would confuse and surprise pretty much > everyone. > > On that topic: "ordered" and "sorted" mean different things, "ordered" > meaning the same thing as "indexed", although with less attention paid to > implementation. As you saw, a TreeSet is both ordered and sorted, whereas a > HashSet is neither. Lists and arrays are ordered but not necessarily > sorted; for example, `ImmutableList.of(1, 5, 2, 6, 3)` is ordered, but > clearly unsorted. > > Lastly, there's no harm in throwing in a call to `unordered` whenever > you're not fussed about order for whatever reason. My understanding is that > if the stream is already unordered, it will just return itself. > > ? Samir. > On 6 Oct 2013 09:28, "Millies, Sebastian" > wrote: > >> Thanks for that information. Part of my confusion may be just a language >> thing. I'd call the property >> of having a first, second etc. element "indexed", not "ordered". In >> German, "ordered" is more akin to >> "sorted". (But perhaps even in English, cf. SQL ORDER BY clause?). >> >> For that reason, I'd not have expected to have to unorder() a stream that >> had never been >> explicitly sort() 'ed. >> >> Or in other words, I'd have expected sorted()/unordered() and >> sequential()/parallel() to >> be pairs of operations that converted along the two dimensions, with >> "unordered sequential" always >> the default unless explicitly coded otherwise. >> >> Setting aside the choice of words, is there some rigorous definition of >> "natural encounter order" that >> will let me know whether a stream will in fact be ordered or unordered >> when I create it? >> Consider the following: >> >> TreeSet t = new TreeSet<>(); >> HashSet h = new HashSet<>(); >> Set s; >> >> s = t; >> Stream tStream = s.parallelStream(); >> >> assert(tStream.spliterator().hasCharacteristics(Spliterator.ORDERED)) ; >> >> s = h; >> Stream hStream = s.parallelStream(); >> assert( ! >> hStream.spliterator().hasCharacteristics(Spliterator.ORDERED)); >> >> Usually having a Set reference I will not know whether the object has been >> created >> a TreeSet or HashSet. Similarly, having a Map.EntrySet I will usually not >> know whether the >> underlying Map was a LinkedHashMap. So for good parallel performance I >> will be forced >> to always explicitly call unordered(), or conduct that complicated test on >> the spliterator's >> characteristics. Unless I'm overlooking something, I am not happy with >> the concept "natural >> encounter order", because it seems unknowable. >> >> -- Sebastian >> >>> -----Original Message----- >>> From: Brian Goetz [mailto:brian.goetz at oracle.com] >>> Sent: Saturday, October 05, 2013 9:56 PM >>> To: Millies, Sebastian >>> Cc: lambda-dev at openjdk.java.net >>> Subject: Re: Stream#generate() vs. iterate() >>> >>> Sequential and unordered are orthogonal characteristics. >>> >>> Ordered/unordered means that the source has a natural encounter order, >> and that >>> stream operations should respect that order. For example, lists and >> arrays have a >>> natural encounter order; they have a first element, a second element, >> etc. Whereas >>> a HashSet has no natural encounter order; processing the elements in one >> order is as >>> good as any other. >>> >>> Sequential/parallel has to do with whether the stream operations will >> execute >>> sequentially or in parallel when the terminal operation is initiated. >>> >>> generate() returns a sequential, unordered stream. You can turn that >> into a parallel, >>> unordered stream with generate(f).parallel(). >>> >>> On Oct 5, 2013, at 6:54 PM, Millies, Sebastian wrote: >>> >>>> I'm a bit confused, perhaps it's just terminology: >>>> >>>> Looking at the Javadoc (in b106) for Stream#generate(Supplier) it says >> it returns a >>> sequential stream. >>>> In your post you say it returns an unordered stream. In what way can a >> sequential >>> stream be unordered? >>>> >>>> -- Sebastian >>>> >>>> -----Original Message----- >>>> From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev- >>> bounces at openjdk.java.net] On Behalf Of Brian Goetz >>>> Sent: Saturday, October 05, 2013 6:13 PM >>>> To: Arne Siegel >>>> Cc: lambda-dev at openjdk.java.net >>>> Subject: Re: stream.parallel().limit() not usable >>>> >>>> [snip] >>>> >>>> You might also do better with Stream.generate, since it creates an >> unordered >>> stream: >>>> >>>> Stream.generate(generatorFunction) >>>> .parallel() >>>> ... >>>> >>>> >>>> >>>> >>>> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 >> Darmstadt, Germany >>> ? Registergericht/Commercial register: Darmstadt HRB 1562 - >> Vorstand/Management >>> Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, >> Arnd >>> Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory >> Board: Dr. Andreas >>> Bereczky - http://www.softwareag.com > From v.a.ammodytes at googlemail.com Sun Oct 6 07:26:32 2013 From: v.a.ammodytes at googlemail.com (Arne Siegel) Date: Sun, 6 Oct 2013 16:26:32 +0200 Subject: stream.parallel().limit() on large streams Message-ID: Hi Brian, tried out both of your propositions, and indeed they do a good job on the order-independent scenario I was looking into: IntStream.range(0, maxToGenerate) .parallel() .unordered() .mapToObj(i -> generatorFunction.get()) .filter(condition) .limit(needed) .forEach(action); ==> runs quite good, but is on average a few percent less efficient than the implementation you cited in your mail; Stream.generate(generatorFunction) .parallel() .limit(maxToGenerate) .filter(condition) .limit(needed) .forEach(action); ==> this is a really concise expression of the program's intents, and it performs equally well compared to the cited implementation. Nice! One note: it's a complete different picture for scenarios where order is important. These need other implementations, and for these I found - parallel streams running much slower than serial streams and serial loop; - the ExecutorService-based approach running much faster than serial implementations, most of the time. Thank you very much for your valuable hints! Arne 2013/10/5 Brian Goetz > > For completeness I want to show how I could rewrite the code using a > > streams-based implementation: > > > > final AtomicInteger elementsConsumed = new AtomicInteger(0); > > IntStream.range(0, maxToGenerate) > > .parallel() > > .mapToObj(i -> generatorFunction.get()) > > .filter(condition::test) > > .peek(action::accept) > > .mapToInt(element -> > > elementsConsumed.incrementAndGet()) > > .filter(n -> n >= needed) > > .findFirst(); > > If this code works for you, then what you're saying is that you don't care > about order. Which I believe. In which case, just use .unordered() in > your stream and you'll get good parallelism without having to contort your > code. Try it and report back? > > You might also do better with Stream.generate, since it creates an > unordered stream: > > Stream.generate(generatorFunction) > .parallel() > ... > > > From brian.goetz at oracle.com Sun Oct 6 12:10:17 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Sun, 6 Oct 2013 15:10:17 -0400 Subject: stream.parallel().limit() on large streams In-Reply-To: References: Message-ID: <8620A567-396E-4C94-9EEF-08B186252F9B@oracle.com> So, the lesson for users is: the library works well when you tell us what you really want. The lesson for us is: we need the docs to do a better job of helping you understand what you want :) Sent from my iPhone On Oct 6, 2013, at 10:26 AM, Arne Siegel wrote: > Hi Brian, > > tried out both of your propositions, and indeed they do a good job on the order-independent scenario I was looking into: > > IntStream.range(0, maxToGenerate) > .parallel() > .unordered() > .mapToObj(i -> generatorFunction.get()) > .filter(condition) > .limit(needed) > .forEach(action); > > ==> runs quite good, but is on average a few percent less efficient than the implementation you cited in your mail; > > Stream.generate(generatorFunction) > .parallel() > .limit(maxToGenerate) > .filter(condition) > .limit(needed) > .forEach(action); > > ==> this is a really concise expression of the program's intents, and it performs equally well compared to the cited implementation. Nice! > > One note: it's a complete different picture for scenarios where order is important. These need other implementations, and for these I found > - parallel streams running much slower than serial streams and serial loop; > - the ExecutorService-based approach running much faster than serial implementations, most of the time. > > Thank you very much for your valuable hints! > > Arne > > > 2013/10/5 Brian Goetz >> > For completeness I want to show how I could rewrite the code using a >> > streams-based implementation: >> > >> > final AtomicInteger elementsConsumed = new AtomicInteger(0); >> > IntStream.range(0, maxToGenerate) >> > .parallel() >> > .mapToObj(i -> generatorFunction.get()) >> > .filter(condition::test) >> > .peek(action::accept) >> > .mapToInt(element -> >> > elementsConsumed.incrementAndGet()) >> > .filter(n -> n >= needed) >> > .findFirst(); >> >> If this code works for you, then what you're saying is that you don't care about order. Which I believe. In which case, just use .unordered() in your stream and you'll get good parallelism without having to contort your code. Try it and report back? >> >> You might also do better with Stream.generate, since it creates an unordered stream: >> >> Stream.generate(generatorFunction) >> .parallel() >> ... > From paul.sandoz at oracle.com Mon Oct 7 03:43:16 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 7 Oct 2013 12:43:16 +0200 Subject: stream.parallel().limit() on large streams In-Reply-To: References: Message-ID: <6D300575-09E1-478C-A4B9-CD3B3DB72969@oracle.com> On Oct 6, 2013, at 4:26 PM, Arne Siegel wrote: > Hi Brian, > > tried out both of your propositions, and indeed they do a good job on the > order-independent scenario I was looking into: > > IntStream.range(0, maxToGenerate) > .parallel() > .unordered() > .mapToObj(i -> generatorFunction.get()) > .filter(condition) > .limit(needed) > .forEach(action); > > ==> runs quite good, but is on average a few percent less efficient than > the implementation you cited in your mail; > > Stream.generate(generatorFunction) > .parallel() > .limit(maxToGenerate) > .filter(condition) > .limit(needed) > .forEach(action); > > ==> this is a really concise expression of the program's intents, and it > performs equally well compared to the cited implementation. Nice! > FWIW the former should be slightly more efficient than the latter since there is only one limit operation. > One note: it's a complete different picture for scenarios where order is > important. These need other implementations, and for these I found > - parallel streams running much slower than serial streams and serial loop; > - the ExecutorService-based approach running much faster than serial > implementations, most of the time. > How do you preserve order with the ExecutorService-based approach? Paul From paul.sandoz at oracle.com Mon Oct 7 03:58:09 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 7 Oct 2013 12:58:09 +0200 Subject: stream.parallel().limit() not usable In-Reply-To: <953E3A7A-3E4A-4F52-9F8E-AD354CD0B19B@oracle.com> References: <8914B7B8-141B-4921-BA69-F015A1E12DEB@oracle.com> <953E3A7A-3E4A-4F52-9F8E-AD354CD0B19B@oracle.com> Message-ID: <021A20D8-45CF-45D7-B42C-827590CF7442@oracle.com> On Oct 5, 2013, at 9:49 AM, Brian Goetz wrote: > Here's some concrete advice for streams with limit(): > > If N is smallish, you're generally fine with parallel. Short-circuiting will kick in once you've got your results, and cancel the remaining tasks. If upstream operations are expensive, you'll get value out of the parallelism. > Yes, and we ensure the short-circuiting is efficient for various shapes of decomposable input. Previously it was possible to get OOME for cases where the input comparatively is was not that large compared to the heap size. Here is another degenerate case: Stream.iterate(0, i -> i + i).paralel().limit(N); The stream has an encounter order but we don't know the size (which is similar to the case where the filter operation clears size information). Also the source decomposes poorly (derived from an iterator). The only way we can decompose is to copy a prefix of elements from the source into an array (thus creating an unbalanced computation tree that is right-heavy). Paul. > If N is large, you're asking for a lot of additional work. Unless generation is obscenely expensive, this will likely not be a good tradeoff. In this case, you have some choices: > - Use unordered -- when you just want N and don't care about the *first* N. This parallelizes cleanly. > - Use sequential -- when your stream has unpredictable size+decomposition characteristics (source doesn't decompose perfectly, or pipeline has unpredictable size because of operations like filter) > From Anna.Kozlova at jetbrains.com Mon Oct 7 07:21:01 2013 From: Anna.Kozlova at jetbrains.com (Anna Kozlova) Date: Mon, 7 Oct 2013 16:21:01 +0200 Subject: debug info inside lambda body Message-ID: <043701cec368$73686680$5a393380$@Kozlova@jetbrains.com> Hi guys, we try to make the debugger work inside lambda body. As far as we can see there is no local variable table generated for the method into which the lambda was compiled. E.g. for a lambda Runnable r = () -> { int i = 0; }; Generated bytecode is as following // access flags 0x100A private static lambda$0()V L0 LINENUMBER 1 L0 ICONST_0 ISTORE 0 L1 LINENUMBER 46 L1 RETURN MAXSTACK = 1 MAXLOCALS = 1 Because of that our debugger can't access local variable information through JDI API. Was that intentional decision or will it be changed later? Thank you Anna Kozlova JetBrains http://www.jetbrains.com "Develop with pleasure!" From brian.goetz at oracle.com Mon Oct 7 08:08:24 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Mon, 07 Oct 2013 11:08:24 -0400 Subject: debug info inside lambda body In-Reply-To: <043701cec368$73686680$5a393380$@Kozlova@jetbrains.com> References: <043701cec368$73686680$5a393380$@Kozlova@jetbrains.com> Message-ID: <5252CE68.60301@oracle.com> I think this is a straightforward omission. I have filed: https://bugs.openjdk.java.net/browse/JDK-8025998 On 10/7/2013 10:21 AM, Anna Kozlova wrote: > Hi guys, > > > > we try to make the debugger work inside lambda body. As far as we can see > there is no local variable table generated for the method into which the > lambda was compiled. > > E.g. for a lambda > > Runnable r = () -> { > > int i = 0; > > }; > > > > Generated bytecode is as following > > > > // access flags 0x100A > > private static lambda$0()V > > L0 > > LINENUMBER 1 L0 > > ICONST_0 > > ISTORE 0 > > L1 > > LINENUMBER 46 L1 > > RETURN > > MAXSTACK = 1 > > MAXLOCALS = 1 > > > > Because of that our debugger can't access local variable information through > JDI API. Was that intentional decision or will it be changed later? > > > > Thank you > Anna Kozlova > JetBrains > http://www.jetbrains.com > "Develop with pleasure!" > > > > From richard.bair at oracle.com Mon Oct 7 09:25:23 2013 From: richard.bair at oracle.com (Richard Bair) Date: Mon, 7 Oct 2013 09:25:23 -0700 Subject: debug info inside lambda body In-Reply-To: <5252CE68.60301@oracle.com> References: <043701cec368$73686680$5a393380$@Kozlova@jetbrains.com> <5252CE68.60301@oracle.com> Message-ID: <379D90B9-E065-466C-8FD4-2FD40EC6910D@oracle.com> Oh good, this was the only problem I had with Lambda's leading up to JavaOne -- debugging didn't work. Glad to see this getting fixed! On Oct 7, 2013, at 8:08 AM, Brian Goetz wrote: > I think this is a straightforward omission. I have filed: > https://bugs.openjdk.java.net/browse/JDK-8025998 > > On 10/7/2013 10:21 AM, Anna Kozlova wrote: >> Hi guys, >> >> >> >> we try to make the debugger work inside lambda body. As far as we can see >> there is no local variable table generated for the method into which the >> lambda was compiled. >> >> E.g. for a lambda >> >> Runnable r = () -> { >> >> int i = 0; >> >> }; >> >> >> >> Generated bytecode is as following >> >> >> >> // access flags 0x100A >> >> private static lambda$0()V >> >> L0 >> >> LINENUMBER 1 L0 >> >> ICONST_0 >> >> ISTORE 0 >> >> L1 >> >> LINENUMBER 46 L1 >> >> RETURN >> >> MAXSTACK = 1 >> >> MAXLOCALS = 1 >> >> >> >> Because of that our debugger can't access local variable information through >> JDI API. Was that intentional decision or will it be changed later? >> >> >> >> Thank you >> Anna Kozlova >> JetBrains >> http://www.jetbrains.com >> "Develop with pleasure!" >> >> >> >> > From brian.goetz at oracle.com Mon Oct 7 09:46:38 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Mon, 07 Oct 2013 16:46:38 +0000 Subject: hg: lambda/lambda/jdk: Clarify semantics of Stream.forEachOrdered Message-ID: <20131007164651.3D83762E07@hg.openjdk.java.net> Changeset: d1d6492434a4 Author: briangoetz Date: 2013-10-07 12:46 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d1d6492434a4 Clarify semantics of Stream.forEachOrdered ! src/share/classes/java/util/stream/Stream.java From brian.goetz at oracle.com Mon Oct 7 09:17:57 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Mon, 07 Oct 2013 16:17:57 +0000 Subject: hg: lambda/lambda/jdk: Tweak spec updates on XxxStream.noneMatch, Stream.flatMap Message-ID: <20131007161934.B30A062E03@hg.openjdk.java.net> Changeset: 0b8fefac3aee Author: briangoetz Date: 2013-10-07 12:17 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0b8fefac3aee Tweak spec updates on XxxStream.noneMatch, Stream.flatMap ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From brian.goetz at oracle.com Mon Oct 7 09:56:46 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Mon, 07 Oct 2013 16:56:46 +0000 Subject: hg: lambda/lambda/jdk: Clarify that 'accepts a function' means a non-null instance of a functional interface Message-ID: <20131007165658.7FF4562E08@hg.openjdk.java.net> Changeset: d6db03c537c2 Author: briangoetz Date: 2013-10-07 12:56 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d6db03c537c2 Clarify that 'accepts a function' means a non-null instance of a functional interface ! src/share/classes/java/util/function/package-info.java From luc.duponcheel at gmail.com Mon Oct 7 14:06:58 2013 From: luc.duponcheel at gmail.com (Luc Duponcheel) Date: Mon, 7 Oct 2013 23:06:58 +0200 Subject: JavaZ Message-ID: Hello folks, I sincerely hope that this email motivates some subscribers to have a look at my "JavaZ" GitHub project. https://github.com/JavaZ/JavaZ and is not considered as "shameless promotion" instead. I am rewriting the code that was there before (and adding new code). Expect frequent additions (and, probably, also changes). ps: the code can suerly been written in a more generic way (resulting in more reuse) but I decided (for the moment) to go for the less generic version because I am not sure yet how to make the code more generic in the most "elegant" way (I'll have to push the type system to is limits anyway) some excerpt of the README file - one of the (kind of higher level) goals of the library is to illustrate that - the monadic "bnd" method is, maybe, not abstract enough (I mean does not allow for enough implementation flexibility) to model concepts as exceptions and concurrency in the most natural way - the monoidal "and" method is abstract enough (I mean does allow for enough implementation flexibility) to model concepts as exceptions and concurrency in a more natural way Cheers, Luc Duponcheel -- __~O -\ <, (*)/ (*) reality goes far beyond imagination From Sebastian.Millies at softwareag.com Tue Oct 8 01:12:28 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Tue, 8 Oct 2013 08:12:28 +0000 Subject: stream.parallel().limit() on large streams In-Reply-To: References: Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC90CF@HQMBX5.eur.ad.sag> BTW, does it make any difference where the call to unordered() is placed in the chain? Or is it all the same stream anyway, and the UNORDERED-property need only be set at some arbitrary point before the terminal operation triggers processing? Can I have a chain partway processed in an order-respecting way, and partway processed in an unordered way? Would that be good style (could anyone even think of an example when might want that behavior?). -- Sebastian -----Original Message----- From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Arne Siegel Sent: Sunday, October 06, 2013 4:27 PM To: Brian Goetz; lambda-dev at openjdk.java.net Subject: Re: stream.parallel().limit() on large streams Hi Brian, tried out both of your propositions, and indeed they do a good job on the order-independent scenario I was looking into: IntStream.range(0, maxToGenerate) .parallel() .unordered() .mapToObj(i -> generatorFunction.get()) .filter(condition) .limit(needed) .forEach(action); [snip] Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From paul.sandoz at oracle.com Tue Oct 8 02:02:41 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 8 Oct 2013 11:02:41 +0200 Subject: stream.parallel().limit() on large streams In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC90CF@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC90CF@HQMBX5.eur.ad.sag> Message-ID: On Oct 8, 2013, at 10:12 AM, "Millies, Sebastian" wrote: > BTW, does it make any difference where the call to unordered() is placed in the chain? Yes, since the sorted operation can inject order, or other stateful operations might behave differently if their input is ordered or not, e.g. limit. unordered() clears an ORDERED flag (if set). > Or is it all the same stream anyway, and the UNORDERED-property need only be set at some > arbitrary point before the terminal operation triggers processing? Can I have a chain > partway processed in an order-respecting way, and partway processed in an unordered way? Yes. > Would that be good style (could anyone even think of an example when might want > that behavior?). > It's not really about style but about what do you want to do. // Noddy example // Get any 5 elements, sort them and map to sum of squares (in order) Set s = IntStream.range(0, 20).boxed().collect(toSet()); List l = s.stream().parallel().limit(5).sorted().map(e -> e * e).collect(toList()); I suspect that a general rule for unordered() is to place it as far left of the pipeline as is allowable for the result you want to obtain. Paul. From paul.sandoz at oracle.com Tue Oct 8 02:59:48 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 08 Oct 2013 09:59:48 +0000 Subject: hg: lambda/lambda/jdk: Sync up docs for bulk traversal on Iterator/Iterable/Map. Message-ID: <20131008100153.A887362E27@hg.openjdk.java.net> Changeset: d8c9eb4da048 Author: psandoz Date: 2013-10-08 11:59 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d8c9eb4da048 Sync up docs for bulk traversal on Iterator/Iterable/Map. ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/util/Iterator.java ! src/share/classes/java/util/Map.java From paul.sandoz at oracle.com Tue Oct 8 03:29:32 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 08 Oct 2013 10:29:32 +0000 Subject: hg: lambda/lambda/jdk: Clarify non-null operation parameters. Message-ID: <20131008102950.5666862E29@hg.openjdk.java.net> Changeset: 73f56347f848 Author: psandoz Date: 2013-10-08 12:29 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/73f56347f848 Clarify non-null operation parameters. ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From paul.sandoz at oracle.com Tue Oct 8 04:13:56 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 08 Oct 2013 11:13:56 +0000 Subject: hg: lambda/lambda/jdk: Sync *Random impls from tl. Message-ID: <20131008111428.876EC62E2D@hg.openjdk.java.net> Changeset: 1d8dd80ae26c Author: psandoz Date: 2013-10-08 12:48 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1d8dd80ae26c Sync *Random impls from tl. ! src/share/classes/java/util/Random.java ! src/share/classes/java/util/SplittableRandom.java ! src/share/classes/java/util/concurrent/ThreadLocalRandom.java From paul.sandoz at oracle.com Tue Oct 8 04:39:23 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 08 Oct 2013 11:39:23 +0000 Subject: hg: lambda/lambda/jdk: 8020061: Clarify reporting characteristics between splits Message-ID: <20131008113943.92B1D62E32@hg.openjdk.java.net> Changeset: 653d17f35169 Author: psandoz Date: 2013-10-08 13:36 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/653d17f35169 8020061: Clarify reporting characteristics between splits Reviewed-by: ! src/share/classes/java/util/Spliterator.java From paul.sandoz at oracle.com Tue Oct 8 07:22:15 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Tue, 08 Oct 2013 14:22:15 +0000 Subject: hg: lambda/lambda/jdk: Tweaks. Message-ID: <20131008142321.5D7A562E40@hg.openjdk.java.net> Changeset: 6e5d1dceea67 Author: psandoz Date: 2013-10-08 16:21 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6e5d1dceea67 Tweaks. ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/util/Iterator.java ! src/share/classes/java/util/Map.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From pbenedict at apache.org Tue Oct 8 07:56:29 2013 From: pbenedict at apache.org (Paul Benedict) Date: Tue, 8 Oct 2013 09:56:29 -0500 Subject: For JDK 9, annotating terminal operations? Message-ID: I think some people today are not knowing the difference between the terminal and non-terminal operations. Correct me if wrong, but I believe the terminal operations are collectively referred to as "reduce". In any event, if terminal methods had a @Terminal annotation, then developers and source-code analysis tools would know clearly when the true work kicks-in. Any thoughts? -- Cheers, Paul From brian.goetz at oracle.com Tue Oct 8 08:01:48 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 08 Oct 2013 15:01:48 +0000 Subject: hg: lambda/lambda/jdk: Clarify interaction of non-interference and concurrent streams Message-ID: <20131008150210.C90F462E43@hg.openjdk.java.net> Changeset: 636b81e0dbd1 Author: briangoetz Date: 2013-10-08 10:53 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/636b81e0dbd1 Clarify interaction of non-interference and concurrent streams ! src/share/classes/java/util/stream/package-info.java From brian.goetz at oracle.com Tue Oct 8 08:03:55 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Oct 2013 11:03:55 -0400 Subject: For JDK 9, annotating terminal operations? In-Reply-To: References: Message-ID: <52541EDB.7090202@oracle.com> The documentation clearly says "This is a terminal operation" (with a link to the definition of terminal operation) for every terminal operation in java.util.stream. Of course, some people don't read the doc. But would an annotation help those people? I don't think so. On 10/8/2013 10:56 AM, Paul Benedict wrote: > I think some people today are not knowing the difference between the > terminal and non-terminal operations. Correct me if wrong, but I believe > the terminal operations are collectively referred to as "reduce". > > In any event, if terminal methods had a @Terminal annotation, then > developers and source-code analysis tools would know clearly when the true > work kicks-in. > > Any thoughts? > From forax at univ-mlv.fr Tue Oct 8 08:05:02 2013 From: forax at univ-mlv.fr (=?utf-8?B?UmVtaSBGb3JheA==?=) Date: Tue, 08 Oct 2013 17:05:02 +0200 Subject: =?utf-8?B?UmU6IEZvciBKREsgOSwgYW5ub3RhdGluZyB0ZXJtaW5hbCBvcGVyYXRpb25zPw==?= Message-ID: <201310081505.r98F4sGm015616@monge.univ-mlv.fr> If it doesn't return a stream, it's a terminal op :) Sent from my Phone ----- Reply message ----- From: "Paul Benedict" To: "lambda-dev at openjdk.java.net" Subject: For JDK 9, annotating terminal operations? Date: Tue, Oct 8, 2013 16:56 I think some people today are not knowing the difference between the terminal and non-terminal operations. Correct me if wrong, but I believe the terminal operations are collectively referred to as "reduce". In any event, if terminal methods had a @Terminal annotation, then developers and source-code analysis tools would know clearly when the true work kicks-in. Any thoughts? -- Cheers, Paul From paul.sandoz at oracle.com Tue Oct 8 08:18:45 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 8 Oct 2013 17:18:45 +0200 Subject: For JDK 9, annotating terminal operations? In-Reply-To: References: Message-ID: <2225C98A-1AED-4937-B2C5-B47EEA82C2E1@oracle.com> On Oct 8, 2013, at 4:56 PM, Paul Benedict wrote: > I think some people today are not knowing the difference between the > terminal and non-terminal operations. Correct me if wrong, but I believe > the terminal operations are collectively referred to as "reduce". > A significant proportion of terminal operations are based off the reduce (or fold) concept, but not all (e.g. forEach). > In any event, if terminal methods had a @Terminal annotation, then > developers and source-code analysis tools would know clearly when the true > work kicks-in. > > Any thoughts? > I don't think we need it. A terminal operation for Stream is one that returns anything but Stream. That only gets a little more confusing if T is a Stream, which i think will be rare (e.g. concatenation of streams). Paul. > -- > Cheers, > Paul > From richard.warburton at gmail.com Tue Oct 8 08:22:18 2013 From: richard.warburton at gmail.com (Richard Warburton) Date: Tue, 8 Oct 2013 16:22:18 +0100 Subject: For JDK 9, annotating terminal operations? In-Reply-To: <201310081505.r98F4sGm015616@monge.univ-mlv.fr> References: <201310081505.r98F4sGm015616@monge.univ-mlv.fr> Message-ID: Hi, If it doesn't return a stream, it's a terminal op :) > IME - once you tell people this, they are fine. regards, Dr. Richard Warburton http://insightfullogic.com @RichardWarburto From spullara at gmail.com Tue Oct 8 08:31:04 2013 From: spullara at gmail.com (Sam Pullara) Date: Tue, 8 Oct 2013 08:31:04 -0700 Subject: For JDK 9, annotating terminal operations? In-Reply-To: References: <201310081505.r98F4sGm015616@monge.univ-mlv.fr> Message-ID: <5DCC6538-7C5A-4241-A094-BF7C39B13FDF@gmail.com> Seems like a simple enough rule.? ---Sent from Boxer Hi, If it doesn't return a stream, it's a terminal op :) > IME - once you tell people this, they are fine. regards, Dr. Richard Warburton http://insightfullogic.com @RichardWarburto From brian.goetz at oracle.com Tue Oct 8 08:48:44 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 08 Oct 2013 11:48:44 -0400 Subject: stream.parallel().limit() on large streams In-Reply-To: References: Message-ID: <5254295C.2060802@oracle.com> I've added: * @apiNote * While {@code limit()} is generally a cheap operation on sequential * stream pipelines, it can be quite expensive on ordered parallel pipelines, * especially for large values of {@code maxSize}, since {@code limit(n)} * is constrained to return not just any n elements, but the * first n elements in the encounter order. Using an unordered * stream source (such as {@link #generate(Supplier)}) or removing the * ordering constraint with {@link #unordered()} may result in significant * speedups of {@code limit()} in parallel pipelines, if the semantics of * your situation permit. If consistency with encounter order is required, * and you are experiencing poor performance or memory utilization with * {@code limit()} in parallel pipelines, switching to sequential execution * with {@link #sequential()} may improve performance. to limit() and friends, and also noted that Stream.generate returns an unordered stream. Hopefully this helps a little! On 10/6/2013 10:26 AM, Arne Siegel wrote: > Hi Brian, > > tried out both of your propositions, and indeed they do a good job on > the order-independent scenario I was looking into: > > IntStream.range(0, maxToGenerate) > .parallel() > .unordered() > .mapToObj(i -> generatorFunction.get()) > .filter(condition) > .limit(needed) > .forEach(action); > > ==> runs quite good, but is on average a few percent less efficient than > the implementation you cited in your mail; > > Stream.generate(generatorFunction) > .parallel() > .limit(maxToGenerate) > .filter(condition) > .limit(needed) > .forEach(action); > > ==> this is a really concise expression of the program's intents, and it > performs equally well compared to the cited implementation. Nice! > > One note: it's a complete different picture for scenarios where order is > important. These need other implementations, and for these I found > - parallel streams running much slower than serial streams and serial loop; > - the ExecutorService-based approach running much faster than serial > implementations, most of the time. > > Thank you very much for your valuable hints! > > Arne > > > 2013/10/5 Brian Goetz > > > > For completeness I want to show how I could rewrite the code using a > > streams-based implementation: > > > > final AtomicInteger elementsConsumed = new > AtomicInteger(0); > > IntStream.range(0, maxToGenerate) > > .parallel() > > .mapToObj(i -> generatorFunction.get()) > > .filter(condition::test) > > .peek(action::accept) > > .mapToInt(element -> > > elementsConsumed.incrementAndGet()) > > .filter(n -> n >= needed) > > .findFirst(); > > If this code works for you, then what you're saying is that you > don't care about order. Which I believe. In which case, just use > .unordered() in your stream and you'll get good parallelism without > having to contort your code. Try it and report back? > > You might also do better with Stream.generate, since it creates an > unordered stream: > > Stream.generate(generatorFunction) > .parallel() > ... > > > From Anna.Kozlova at jetbrains.com Tue Oct 8 08:52:35 2013 From: Anna.Kozlova at jetbrains.com (Anna Kozlova) Date: Tue, 8 Oct 2013 17:52:35 +0200 Subject: Ambiguity method error when one method can't be applicable Message-ID: <04b901cec43e$6853c560$38fb5020$@Kozlova@jetbrains.com> Hi guys, The following code does not compile with ambiguous method error: class MyTest { interface I1 { Foo m(String s); } interface I2 { Foo m(Integer i); } static class Foo { Foo(T t) { System.out.println(t); } } private static void m(I1 i) {} private static void m(I2 i) {} public static void main(String[] args) { m(Foo::new); } } Some time ago though there was no such an error. Not sure that I understand why compiler can't resolve such an ambiguity for me. Could someone explain, please? Thank you Anna Kozlova JetBrains http://www.jetbrains.com "Develop with pleasure!" From brian.goetz at oracle.com Tue Oct 8 09:09:03 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 08 Oct 2013 16:09:03 +0000 Subject: hg: lambda/lambda/jdk: Clarify interaction of limit/substream with encounter order; clarify ordering characteristics of generate() Message-ID: <20131008160935.5ED4F62E45@hg.openjdk.java.net> Changeset: fa40dcadc712 Author: briangoetz Date: 2013-10-08 12:08 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fa40dcadc712 Clarify interaction of limit/substream with encounter order; clarify ordering characteristics of generate() ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From samir at noodlesandwich.com Tue Oct 8 09:17:46 2013 From: samir at noodlesandwich.com (Samir Talwar) Date: Tue, 8 Oct 2013 17:17:46 +0100 Subject: Ambiguity method error when one method can't be applicable In-Reply-To: <52542ae3.c626ec0a.5275.ffffed30SMTPIN_ADDED_BROKEN@mx.google.com> References: <52542ae3.c626ec0a.5275.ffffed30SMTPIN_ADDED_BROKEN@mx.google.com> Message-ID: This works well for me in the Early Access release. It calls `static void m(I2)`. It compiled and run as-is, but produced no output. I added behaviour to the static `m` methods in order to verify it was doing as expected. My code is here: http://pastebin.com/0iYFW40T . ? Samir. On Tue, Oct 8, 2013 at 4:52 PM, Anna Kozlova wrote: > Hi guys, > > > > The following code does not compile with ambiguous method error: > > > > class MyTest { > > > > interface I1 { > > Foo m(String s); > > } > > > > interface I2 { > > Foo m(Integer i); > > } > > > > static class Foo { > > Foo(T t) { > > System.out.println(t); > > } > > } > > > > private static void m(I1 i) {} > > private static void m(I2 i) {} > > > > public static void main(String[] args) { > > m(Foo::new); > > } > > } > > > > Some time ago though there was no such an error. > > > > Not sure that I understand why compiler can't resolve such an ambiguity for > me. Could someone explain, please? > > > > Thank you > Anna Kozlova > JetBrains > http://www.jetbrains.com > "Develop with pleasure!" > > > > > From Anna.Kozlova at jetbrains.com Tue Oct 8 11:02:30 2013 From: Anna.Kozlova at jetbrains.com (Anna Kozlova) Date: Tue, 8 Oct 2013 20:02:30 +0200 Subject: Ambiguity method error when one method can't be applicable In-Reply-To: References: <52542ae3.c626ec0a.5275.ffffed30SMTPIN_ADDED_BROKEN@mx.google.com> Message-ID: <04c101cec450$8ee2d060$aca87120$@Kozlova@jetbrains.com> This worked for me with the latest build from the 'lambda' repository but fails as I've described with b.109 from https://jdk8.java.net/download.html. Thank you Anna Kozlova JetBrains http://www.jetbrains.com "Develop with pleasure!" -----Original Message----- From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Samir Talwar Sent: Tuesday, October 08, 2013 6:18 PM To: Anna Kozlova Cc: lambda-dev Subject: Re: Ambiguity method error when one method can't be applicable This works well for me in the Early Access release. It calls `static void m(I2)`. It compiled and run as-is, but produced no output. I added behaviour to the static `m` methods in order to verify it was doing as expected. My code is here: http://pastebin.com/0iYFW40T . - Samir. On Tue, Oct 8, 2013 at 4:52 PM, Anna Kozlova wrote: > Hi guys, > > > > The following code does not compile with ambiguous method error: > > > > class MyTest { > > > > interface I1 { > > Foo m(String s); > > } > > > > interface I2 { > > Foo m(Integer i); > > } > > > > static class Foo { > > Foo(T t) { > > System.out.println(t); > > } > > } > > > > private static void m(I1 i) {} > > private static void m(I2 i) {} > > > > public static void main(String[] args) { > > m(Foo::new); > > } > > } > > > > Some time ago though there was no such an error. > > > > Not sure that I understand why compiler can't resolve such an > ambiguity for me. Could someone explain, please? > > > > Thank you > Anna Kozlova > JetBrains > http://www.jetbrains.com "Develop with > pleasure!" > > > > > !DSPAM:35,5254309831851748229832! From brian.goetz at oracle.com Tue Oct 8 11:08:27 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 08 Oct 2013 18:08:27 +0000 Subject: hg: lambda/lambda/jdk: Implementation note on performance characteristics of non-concurrent groupingBy, toMap Message-ID: <20131008180950.E4C6262E4F@hg.openjdk.java.net> Changeset: 5a79d9f67b5a Author: briangoetz Date: 2013-10-08 14:08 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5a79d9f67b5a Implementation note on performance characteristics of non-concurrent groupingBy, toMap ! src/share/classes/java/util/stream/Collectors.java From brian.goetz at oracle.com Tue Oct 8 11:47:47 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 08 Oct 2013 18:47:47 +0000 Subject: hg: lambda/lambda/jdk: Clarify lack of ordering and visibility guarantees for side-effects Message-ID: <20131008184829.BB49462E51@hg.openjdk.java.net> Changeset: c0e1ff8616e3 Author: briangoetz Date: 2013-10-08 14:47 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c0e1ff8616e3 Clarify lack of ordering and visibility guarantees for side-effects ! src/share/classes/java/util/stream/package-info.java From brian.goetz at oracle.com Tue Oct 8 13:24:34 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 08 Oct 2013 20:24:34 +0000 Subject: hg: lambda/lambda/jdk: Add clarification on performance of parallel distinct() on ordered streams Message-ID: <20131008202518.516C162E61@hg.openjdk.java.net> Changeset: 66840f52340e Author: briangoetz Date: 2013-10-08 16:24 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/66840f52340e Add clarification on performance of parallel distinct() on ordered streams ! src/share/classes/java/util/stream/Stream.java From mike.duigou at oracle.com Tue Oct 8 15:10:44 2013 From: mike.duigou at oracle.com (mike.duigou at oracle.com) Date: Tue, 08 Oct 2013 22:10:44 +0000 Subject: hg: lambda/lambda/jdk: add comma. Message-ID: <20131008221058.5F42562E67@hg.openjdk.java.net> Changeset: 56e231938edd Author: mduigou Date: 2013-10-08 15:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/56e231938edd add comma. ! src/share/classes/java/util/stream/package-info.java From mike.duigou at oracle.com Tue Oct 8 15:08:52 2013 From: mike.duigou at oracle.com (mike.duigou at oracle.com) Date: Tue, 08 Oct 2013 22:08:52 +0000 Subject: hg: lambda/lambda/jdk: 4 new changesets Message-ID: <20131008220958.7109E62E66@hg.openjdk.java.net> Changeset: 28d3fdd3ced5 Author: mduigou Date: 2013-09-30 16:00 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/28d3fdd3ced5 add missing import ! test/java/util/Random/RandomTest.java Changeset: e90bf9f0c17e Author: mduigou Date: 2013-10-01 11:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e90bf9f0c17e Merge - test/java/util/regex/PatternTest.java Changeset: b6ac77a2fb9c Author: mduigou Date: 2013-10-07 14:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b6ac77a2fb9c Merge Changeset: 91f84740528a Author: mduigou Date: 2013-10-08 15:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/91f84740528a Merge From mike.duigou at oracle.com Tue Oct 8 17:24:23 2013 From: mike.duigou at oracle.com (mike.duigou at oracle.com) Date: Wed, 09 Oct 2013 00:24:23 +0000 Subject: hg: lambda/lambda/jdk: 8025910: rename substream(long) -> skip and substream(long, long) -> slice Message-ID: <20131009002451.2871362E6B@hg.openjdk.java.net> Changeset: cdf71ab190e7 Author: mduigou Date: 2013-10-08 17:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cdf71ab190e7 8025910: rename substream(long) -> skip and substream(long,long) -> slice Reviewed-by: duke ! src/share/classes/java/util/stream/DoublePipeline.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntPipeline.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongPipeline.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/ReferencePipeline.java ! src/share/classes/java/util/stream/Stream.java ! test/java/util/stream/Stream/IntStreamTest.java ! test/java/util/stream/Stream/SubstreamTest.java ! test/java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java From henry.jen at oracle.com Tue Oct 8 22:57:28 2013 From: henry.jen at oracle.com (Henry Jen) Date: Tue, 08 Oct 2013 22:57:28 -0700 Subject: RFR: 8023524: Mechanism to dump generated lambda classes / log lambda code generation Message-ID: <5254F048.1090802@oracle.com> Hi, Please review updated webrev at http://cr.openjdk.java.net/~henryjen/ccc/8023524/6/webrev In this update, - Check the specified directory once, disable dumping if it is invalid. This address the comment of unnecessary complexity, as this is a debug feature and most likely developer would like to restart. - minimum doPrivilege permission - Install security manager in test to verify doPrivilege Cheers, Henry From Sebastian.Millies at softwareag.com Wed Oct 9 00:00:10 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Wed, 9 Oct 2013 07:00:10 +0000 Subject: Lazy lists? Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC95E1@HQMBX5.eur.ad.sag> Hello there, now that we have infinite Streams, wouldn?t it be worthwhile to have a lazy list implementation in the collection library? By Lazy list, I mean a list that would be strict for the head and lazy for the tail in that it a) could be based on a Function to generate the elements in the tail in sequence (like Stream#iterate()) b) would accept a Supplier> to supply a tail (like Stream#generate()) c) would accept a Predicate to filter out non-matching elements from the tail d) would allow constant time access to the head. It would stream() using a spliterator of unknown size. With it, we could write code somewhat like this to generate the first 100 primes by trial division (where cons is also a static factory methof of LazyList): LazyList s = sieve(LazyList.newList(2, x -> x + 1)); s.stream().limit(100).forEach(x->System.out.print(x + " ")); private LazyList sieve(LazyList s) { Integer p = s.head(); return cons(p, () -> sieve(s.tail().filter(x -> x % p != 0))); } Which would be pretty neat. Any particular reason ? now that we have lambdas ? that there are no lazy data structures in the library? n Sebastian Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From mandy.chung at oracle.com Wed Oct 9 02:47:34 2013 From: mandy.chung at oracle.com (Mandy Chung) Date: Wed, 09 Oct 2013 02:47:34 -0700 Subject: RFR: 8023524: Mechanism to dump generated lambda classes / log lambda code generation In-Reply-To: <5254F048.1090802@oracle.com> References: <5254F048.1090802@oracle.com> Message-ID: <52552636.9080209@oracle.com> Hi Henry, On 10/8/2013 10:57 PM, Henry Jen wrote: > Hi, > > Please review updated webrev at > http://cr.openjdk.java.net/~henryjen/ccc/8023524/6/webrev ProxyClassesDumper looks simpler after moving the path validation to the static factory method. One minor comment: ProxyClassesDumper.getInstance returns null if the given path is invalid. For a null path, it can simply return null rather than throwing NPE. It's good to see the limited doPrivileged being used here. I can see that listing the limited permissions would be a tradeoff with maintainability and readability. This also leads to the question how one can determine the complete list of permissions required (besides testing) and guideline on when to use limited privileged and when to use the entire ACC (Jeff may have some thoughts). Anyway, just some comments related to limited doPrivileged and not anything related to this fix. Henry - your fix looks good for me. You don't not need to generate a new webrev if you make any change per my comment about null path unless others have any other comment. thanks Mandy From paul.sandoz at oracle.com Wed Oct 9 03:22:05 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 9 Oct 2013 12:22:05 +0200 Subject: Lazy lists? In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC95E1@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC95E1@HQMBX5.eur.ad.sag> Message-ID: <0F46F5D9-8C3B-4ED6-8594-9C3BB6110735@oracle.com> Hi Milles, We avoided adding operation-based methods to collections themselves which would have made them lazy due to, in part, the complexity that it introduced to the implementation. So rather than a lazy data structure we opted for different abstraction we call Stream. The approach of the specific example you present is falling into similar traps as discussed in [1] on trial division, and as such it is, IMHO, not a particular compelling reasons why lazy lists are needed. Note: we are missing some operations on stream, such as limitWhen (or takeWhile) that would be useful for the trial division use-case. Here is another way: Map> m = new TreeMap<>(); Function> newList = (k) -> new LinkedList(); IntStream.range(2, 100).forEach(x -> { if (!m.containsKey(x)) { // Always absent, just shorter expression m.computeIfAbsent(x * x, newList).push(x); } else { m.remove(x).forEach(p -> m.computeIfAbsent(x + p, newList).push(p)); } }); List primes = m.values().stream().flatMap(List::stream).collect(toList()); System.out.println(primes); Obviously that is not parallelizable and of course it is not lazy, but then Java is not Haskell (for better or worse depending on one's opinion). I think there are far more compelling reasons to add persistent collections to Java. Paul. [1] http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf On Oct 9, 2013, at 9:00 AM, "Millies, Sebastian" wrote: > Hello there, > > now that we have infinite Streams, wouldn?t it be worthwhile to have a lazy list > implementation in the collection library? By Lazy list, I mean a list that > would be strict for the head and lazy for the tail in that it > > a) could be based on a Function to generate the elements in the tail > in sequence (like Stream#iterate()) > b) would accept a Supplier> to supply a tail (like Stream#generate()) > c) would accept a Predicate to filter out non-matching elements > from the tail > d) would allow constant time access to the head. > > It would stream() using a spliterator of unknown size. > > With it, we could write code somewhat like this to generate the first 100 primes > by trial division (where cons is also a static factory methof of LazyList): > > LazyList s = sieve(LazyList.newList(2, x -> x + 1)); > s.stream().limit(100).forEach(x->System.out.print(x + " ")); > > private LazyList sieve(LazyList s) { > Integer p = s.head(); > return cons(p, () -> sieve(s.tail().filter(x -> x % p != 0))); > } > > Which would be pretty neat. Any particular reason ? now that we have > lambdas ? that there are no lazy data structures in the library? > > > n Sebastian > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > From Anna.Kozlova at jetbrains.com Wed Oct 9 04:28:19 2013 From: Anna.Kozlova at jetbrains.com (Anna Kozlova) Date: Wed, 9 Oct 2013 13:28:19 +0200 Subject: Ambiguity method error when one method can't be applicable In-Reply-To: <04b901cec43e$6853c560$38fb5020$@Kozlova@jetbrains.com> References: <04b901cec43e$6853c560$38fb5020$@Kozlova@jetbrains.com> Message-ID: <04d901cec4e2$a8169bb0$f843d310$@Kozlova@jetbrains.com> Hi, It looks like that the change which caused the problem is http://hg.openjdk.java.net/lambda/lambda/langtools/rev/4a6acc42c3a1. The test data e.g. http://hg.openjdk.java.net/lambda/lambda/langtools/file/4a6acc42c3a1/test/to ols/javac/lambda/TargetType02.java was changed exactly in a way I've described. The change itself is quite complicated and javac specific so I am not sure I understand how it is connected to the spec. Could you please help? Thank you Anna Kozlova JetBrains http://www.jetbrains.com "Develop with pleasure!" -----Original Message----- From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Anna Kozlova Sent: Tuesday, October 08, 2013 5:53 PM To: lambda-dev at openjdk.java.net Subject: Ambiguity method error when one method can't be applicable Hi guys, The following code does not compile with ambiguous method error: class MyTest { interface I1 { Foo m(String s); } interface I2 { Foo m(Integer i); } static class Foo { Foo(T t) { System.out.println(t); } } private static void m(I1 i) {} private static void m(I2 i) {} public static void main(String[] args) { m(Foo::new); } } Some time ago though there was no such an error. Not sure that I understand why compiler can't resolve such an ambiguity for me. Could someone explain, please? Thank you Anna Kozlova JetBrains http://www.jetbrains.com "Develop with pleasure!" !DSPAM:35,52542aaf317841350320123! From Sebastian.Millies at softwareag.com Wed Oct 9 04:43:06 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Wed, 9 Oct 2013 11:43:06 +0000 Subject: Lazy lists? In-Reply-To: <0F46F5D9-8C3B-4ED6-8594-9C3BB6110735@oracle.com> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC95E1@HQMBX5.eur.ad.sag> <0F46F5D9-8C3B-4ED6-8594-9C3BB6110735@oracle.com> Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FC9772@HQMBX5.eur.ad.sag> Hello Paul, thanks for that example (although it computes the primes in the range up to 100, not the first 100 primes). First time I see flatMap in action. My code was intended only as an example, I am aware of O'Neills paper. I still think having lazy collections would be nice. Your last sentence suggests you view them as an alternative to persistent collections. Or is that an over-interpretation? -- Sebastian -----Original Message----- From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Paul Sandoz Sent: Wednesday, October 09, 2013 12:22 PM Cc: lambda-dev at openjdk.java.net Subject: Re: Lazy lists? Hi Milles, We avoided adding operation-based methods to collections themselves which would have made them lazy due to, in part, the complexity that it introduced to the implementation. So rather than a lazy data structure we opted for different abstraction we call Stream. The approach of the specific example you present is falling into similar traps as discussed in [1] on trial division, and as such it is, IMHO, not a particular compelling reasons why lazy lists are needed. Note: we are missing some operations on stream, such as limitWhen (or takeWhile) that would be useful for the trial division use-case. Here is another way: Map> m = new TreeMap<>(); Function> newList = (k) -> new LinkedList(); IntStream.range(2, 100).forEach(x -> { if (!m.containsKey(x)) { // Always absent, just shorter expression m.computeIfAbsent(x * x, newList).push(x); } else { m.remove(x).forEach(p -> m.computeIfAbsent(x + p, newList).push(p)); } }); List primes = m.values().stream().flatMap(List::stream).collect(toList()); System.out.println(primes); Obviously that is not parallelizable and of course it is not lazy, but then Java is not Haskell (for better or worse depending on one's opinion). I think there are far more compelling reasons to add persistent collections to Java. Paul. [1] http://www.cs.hmc.edu/~oneill/papers/Sieve-JFP.pdf On Oct 9, 2013, at 9:00 AM, "Millies, Sebastian" wrote: > Hello there, > > now that we have infinite Streams, wouldn?t it be worthwhile to have a > lazy list implementation in the collection library? By Lazy list, I > mean a list that would be strict for the head and lazy for the tail in > that it > > a) could be based on a Function to generate the elements in the tail > in sequence (like Stream#iterate()) > b) would accept a Supplier> to supply a tail (like > Stream#generate()) > c) would accept a Predicate to filter out non-matching elements > from the tail > d) would allow constant time access to the head. > > It would stream() using a spliterator of unknown size. > > With it, we could write code somewhat like this to generate the first > 100 primes by trial division (where cons is also a static factory methof of LazyList): > > LazyList s = sieve(LazyList.newList(2, x -> x + 1)); > s.stream().limit(100).forEach(x->System.out.print(x + " ")); > > private LazyList sieve(LazyList s) { Integer p = > s.head(); return cons(p, () -> sieve(s.tail().filter(x -> x % p != > 0))); } > > Which would be pretty neat. Any particular reason ? now that we have > lambdas ? that there are no lazy data structures in the library? > > > n Sebastian > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 > Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt > HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich > (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - > Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. > Andreas Bereczky - http://www.softwareag.com > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From paul.sandoz at oracle.com Wed Oct 9 05:19:27 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 9 Oct 2013 14:19:27 +0200 Subject: Lazy lists? In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FC9772@HQMBX5.eur.ad.sag> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC95E1@HQMBX5.eur.ad.sag> <0F46F5D9-8C3B-4ED6-8594-9C3BB6110735@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FC9772@HQMBX5.eur.ad.sag> Message-ID: <417B9C4C-6CA1-4397-9593-C276509385DA@oracle.com> HI, On Oct 9, 2013, at 1:43 PM, "Millies, Sebastian" wrote: > Hello Paul, > > thanks for that example (although it computes the primes in the range up to 100, not the first 100 primes). Right. > First time I see flatMap in action. > :-) > My code was intended only as an example, I am aware of O'Neills paper. I still think having lazy collections > would be nice. Your last sentence suggests you view them as an alternative to persistent collections. Or is > that an over-interpretation? > Over interpretation. I think persistent collections are the more important thing to be focusing on if we are going to add new collection types to the JDK. Paul. From paul.sandoz at oracle.com Wed Oct 9 07:39:20 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Wed, 09 Oct 2013 14:39:20 +0000 Subject: hg: lambda/lambda/jdk: impl not on concat warning about possible errors. Message-ID: <20131009144115.D90B562E93@hg.openjdk.java.net> Changeset: f9343a8f46e6 Author: psandoz Date: 2013-10-09 16:38 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f9343a8f46e6 impl not on concat warning about possible errors. ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From paul.sandoz at oracle.com Wed Oct 9 08:48:13 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Wed, 09 Oct 2013 15:48:13 +0000 Subject: hg: lambda/lambda/jdk: Generalize warning to indciate deep call chains (and therefore Message-ID: <20131009154839.0D1C962E96@hg.openjdk.java.net> Changeset: be99712e6ad9 Author: psandoz Date: 2013-10-09 17:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/be99712e6ad9 Generalize warning to indciate deep call chains (and therefore potentially ineffcient) ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From henry.jen at oracle.com Wed Oct 9 10:10:32 2013 From: henry.jen at oracle.com (Henry Jen) Date: Wed, 09 Oct 2013 10:10:32 -0700 Subject: RFR: 8023524: Mechanism to dump generated lambda classes / log lambda code generation In-Reply-To: <52552636.9080209@oracle.com> References: <5254F048.1090802@oracle.com> <52552636.9080209@oracle.com> Message-ID: <52558E08.3050902@oracle.com> Thanks Mandy, and all others have reviewed and commented. Cheers, Henry On 10/09/2013 02:47 AM, Mandy Chung wrote: > Hi Henry, > > On 10/8/2013 10:57 PM, Henry Jen wrote: >> Hi, >> >> Please review updated webrev at >> http://cr.openjdk.java.net/~henryjen/ccc/8023524/6/webrev > > ProxyClassesDumper looks simpler after moving the path validation to the > static factory method. > > One minor comment: > ProxyClassesDumper.getInstance returns null if the given path is invalid. > For a null path, it can simply return null rather than throwing NPE. > > It's good to see the limited doPrivileged being used here. I can > see that listing the limited permissions would be a tradeoff with > maintainability and readability. This also leads to the question > how one can determine the complete list of permissions required > (besides testing) and guideline on when to use limited privileged > and when to use the entire ACC (Jeff may have some thoughts). > > Anyway, just some comments related to limited doPrivileged and not > anything related to this fix. > > Henry - your fix looks good for me. You don't not need to > generate a new webrev if you make any change per my comment about > null path unless others have any other comment. > > thanks > Mandy From henry.jen at oracle.com Wed Oct 9 10:35:27 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Wed, 09 Oct 2013 17:35:27 +0000 Subject: hg: lambda/lambda/jdk: 8023524: Mechanism to dump generated lambda classes / log lambda code generation Message-ID: <20131009173638.D699962EA2@hg.openjdk.java.net> Changeset: b542f829f53b Author: henryjen Date: 2013-10-09 08:54 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b542f829f53b 8023524: Mechanism to dump generated lambda classes / log lambda code generation Reviewed-by: plevart, mchung, forax, jjb Contributed-by: brian.goetz at oracle.com, henry.jen at oracle.com ! src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java + src/share/classes/java/lang/invoke/ProxyClassesDumper.java + test/java/lang/invoke/lambda/LogGeneratedClassesTest.java From brian.goetz at oracle.com Wed Oct 9 11:35:09 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Wed, 09 Oct 2013 18:35:09 +0000 Subject: hg: lambda/lambda/jdk: More specificity on statelessness and non-interference Message-ID: <20131009183527.A343462EA6@hg.openjdk.java.net> Changeset: 21ec6bb805b6 Author: briangoetz Date: 2013-10-09 14:34 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/21ec6bb805b6 More specificity on statelessness and non-interference ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java ! src/share/classes/java/util/stream/package-info.java From paul.sandoz at oracle.com Thu Oct 10 01:16:42 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Thu, 10 Oct 2013 08:16:42 +0000 Subject: hg: lambda/lambda/jdk: 8024354: Explicitly permit DoubleStream.sum()/average() implementations to use higher precision summation Message-ID: <20131010081804.31A2662ECC@hg.openjdk.java.net> Changeset: 202477c90609 Author: darcy Date: 2013-10-09 18:31 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/202477c90609 8024354: Explicitly permit DoubleStream.sum()/average() implementations to use higher precision summation Reviewed-by: mduigou, briangoetz ! src/share/classes/java/util/DoubleSummaryStatistics.java ! src/share/classes/java/util/stream/DoubleStream.java From paul.sandoz at oracle.com Thu Oct 10 07:20:29 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Thu, 10 Oct 2013 14:20:29 +0000 Subject: hg: lambda/lambda/jdk: Refine and sync with language in package doc. Message-ID: <20131010142138.7A3C262EFB@hg.openjdk.java.net> Changeset: 76ad3f9264a5 Author: psandoz Date: 2013-10-10 16:20 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/76ad3f9264a5 Refine and sync with language in package doc. ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From henry.jen at oracle.com Thu Oct 10 12:38:32 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Thu, 10 Oct 2013 19:38:32 +0000 Subject: hg: lambda/lambda/jdk: remove stream from DirectoryStream Message-ID: <20131010193902.A6B3362F3C@hg.openjdk.java.net> Changeset: 6ef7b72328bd Author: henryjen Date: 2013-10-10 12:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6ef7b72328bd remove stream from DirectoryStream ! src/share/classes/java/nio/file/DirectoryStream.java - test/java/nio/file/DirectoryStream/StreamTest.java From brian.goetz at oracle.com Thu Oct 10 14:37:09 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Thu, 10 Oct 2013 21:37:09 +0000 Subject: hg: lambda/lambda/jdk: De-duplicate XxxStream spec Message-ID: <20131010213743.E842B62F3F@hg.openjdk.java.net> Changeset: f5155a3b4974 Author: briangoetz Date: 2013-10-10 17:36 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f5155a3b4974 De-duplicate XxxStream spec ! src/share/classes/java/util/stream/BaseStream.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Stream.java From andrey.x.nazarov at oracle.com Fri Oct 11 07:56:19 2013 From: andrey.x.nazarov at oracle.com (Andrey Nazarov) Date: Fri, 11 Oct 2013 18:56:19 +0400 Subject: Review: demos for jdk8 In-Reply-To: <52326F0F.9010707@oracle.com> References: <52326F0F.9010707@oracle.com> Message-ID: <52581193.3020606@oracle.com> Hi guys, Did you have a chance to review our jdk8 demos? http://cr.openjdk.java.net/~anazarov/try-with-resources/ http://cr.openjdk.java.net/~anazarov/repeating-annotations/ http://cr.openjdk.java.net/~anazarov/jdk8-demo-bulkoperations/ http://cr.openjdk.java.net/~anazarov/extension-methods/ -- Andrey. On 13.09.2013 5:49, Andrey Nazarov wrote: > I've fixed subject > --- > Hi guys, > > We want to push our demo code for try-with-resources feature > Could you please review this code? > http://cr.openjdk.java.net/~anazarov/try-with-resources/ > > > --Andrey. > From pbenedict at apache.org Fri Oct 11 08:04:07 2013 From: pbenedict at apache.org (Paul Benedict) Date: Fri, 11 Oct 2013 10:04:07 -0500 Subject: Review: demos for jdk8 In-Reply-To: <52581193.3020606@oracle.com> References: <52326F0F.9010707@oracle.com> <52581193.3020606@oracle.com> Message-ID: I think there may be a problem with Console::close(). Even though the Console instance will be disposed in a try-with-resources construct, that doesn't the reader and writer are guaranteed to close together. Currently, if the reader fails to close, the writer will be left dangling. What do you think of putting a try/catch in close() (and maybe suppressing one of them)? On Fri, Oct 11, 2013 at 9:56 AM, Andrey Nazarov wrote: > Hi guys, > > Did you have a chance to review our jdk8 demos? > > http://cr.openjdk.java.net/~anazarov/try-with-resources/ > http://cr.openjdk.java.net/~anazarov/repeating-annotations/ > http://cr.openjdk.java.net/~anazarov/jdk8-demo-bulkoperations/ > http://cr.openjdk.java.net/~anazarov/extension-methods/ > > > -- Andrey. > > On 13.09.2013 5:49, Andrey Nazarov wrote: > > I've fixed subject > > --- > > Hi guys, > > > > We want to push our demo code for try-with-resources feature > > Could you please review this code? > > http://cr.openjdk.java.net/~anazarov/try-with-resources/ > > > > > > --Andrey. > > > > > -- Cheers, Paul From paul.sandoz at oracle.com Fri Oct 11 10:08:06 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Fri, 11 Oct 2013 17:08:06 +0000 Subject: hg: lambda/lambda/jdk: Consistent statements. Message-ID: <20131011170857.5778B62F88@hg.openjdk.java.net> Changeset: 969c95cc5fa1 Author: psandoz Date: 2013-10-11 19:07 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/969c95cc5fa1 Consistent statements. ! src/share/classes/java/util/DoubleSummaryStatistics.java ! src/share/classes/java/util/stream/DoubleStream.java From vicente.romero at oracle.com Fri Oct 11 14:26:59 2013 From: vicente.romero at oracle.com (Vicente-Arturo Romero-Zaldivar) Date: Fri, 11 Oct 2013 23:26:59 +0200 Subject: Ambiguity method error when one method can't be applicable In-Reply-To: <04d901cec4e2$a8169bb0$f843d310$@Kozlova@jetbrains.com> References: <04b901cec43e$6853c560$38fb5020$@Kozlova@jetbrains.com> <04d901cec4e2$a8169bb0$f843d310$@Kozlova@jetbrains.com> Message-ID: <52586D23.2030007@oracle.com> Hi Anna, Thanks for the detailed report, we will look at it and get back to you later. Vicente On 09/10/13 13:28, Anna Kozlova wrote: > Hi, > > It looks like that the change which caused the problem is > http://hg.openjdk.java.net/lambda/lambda/langtools/rev/4a6acc42c3a1. The > test data e.g. > http://hg.openjdk.java.net/lambda/lambda/langtools/file/4a6acc42c3a1/test/to > ols/javac/lambda/TargetType02.java was changed exactly in a way I've > described. > > The change itself is quite complicated and javac specific so I am not sure I > understand how it is connected to the spec. Could you please help? > > Thank you > Anna Kozlova > JetBrains > http://www.jetbrains.com > "Develop with pleasure!" > > > > -----Original Message----- > From: lambda-dev-bounces at openjdk.java.net > [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Anna Kozlova > Sent: Tuesday, October 08, 2013 5:53 PM > To: lambda-dev at openjdk.java.net > Subject: Ambiguity method error when one method can't be applicable > > Hi guys, > > > > The following code does not compile with ambiguous method error: > > > > class MyTest { > > > > interface I1 { > > Foo m(String s); > > } > > > > interface I2 { > > Foo m(Integer i); > > } > > > > static class Foo { > > Foo(T t) { > > System.out.println(t); > > } > > } > > > > private static void m(I1 i) {} > > private static void m(I2 i) {} > > > > public static void main(String[] args) { > > m(Foo::new); > > } > > } > > > > Some time ago though there was no such an error. > > > > Not sure that I understand why compiler can't resolve such an ambiguity for > me. Could someone explain, please? > > > > Thank you > Anna Kozlova > JetBrains > http://www.jetbrains.com "Develop with > pleasure!" > > > > > > !DSPAM:35,52542aaf317841350320123! > > From imaginej at skynet.be Fri Oct 4 14:08:33 2013 From: imaginej at skynet.be (ImagineJ) Date: Fri, 04 Oct 2013 23:08:33 +0200 Subject: JavaZ Message-ID: <524F2E51.8050104@skynet.be> Hello, I have been working on a complete revision of my JavaZ library. Details can be found at https://github.com/JavaZ. For the moment I only implemented One as an example. More to come soon (see README file). All comments are welcome Luc -- Luc Duponcheel ImagineJ bvba Address: Veldbloemstraat 15 B-2640 Mortsel, Belgium Phone: +32 (0)3 455 69 60 Cell Phone: +32 (0)477 574 743 Skype: LucDup at ImagineJ Email: imaginej at skynet.be From mail at wombatsoftware.de Fri Oct 11 15:25:25 2013 From: mail at wombatsoftware.de (Daniel Sachse) Date: Sat, 12 Oct 2013 00:25:25 +0200 Subject: Dynamic filtering conditions in Lambda Message-ID: Hey guys, I having the following working Java 8 code: List names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara", "Sam", "Sara", "Jil", "Brenda"); List result = names.stream().filter(name -> name.startsWith("K")) .filter(name -> name.length() == 3) .collect(toList()); ============ Now I change it to use multiple possible first letters and lenghts: List result = names.stream().filter(name -> name.startsWith("K") || name.startsWith("B")) .filter(name -> name.length() == 3 || name.length() == 4) .collect(toList()); ============ Now I want to rewrite this and use a dynamic list of starting letters and a dynamic list of length attributes, but I totally got stuck on how to implement this : List names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara", "Sam", "Sara", "Jil", "Brenda"); *List *startsWith* = Arrays.asList("B", "K", "S");* *List *length* = Arrays.asList(2, 3, 4);* List result = names.stream(). // Filters missing .collect(toList()); ============ I would be really glad if you could provide me with a solution how this could be implemented using Lambdas :) Thanks in advance! Daniel -- Wombat Software Technologies UG (haftungsbeschr?nkt) Im MediaPark 5 D-50670 K?ln Gesch?ftsf?hrer: Daniel Sachse, Jacob Pawlik Unternehmenssitz: K?ln Handelsregister beim Amtsgericht: K?ln Handelsregister-Nummer: HRB 79316 Web: http://www.wombatsoftware.de Email: mail at wombatsoftware.de Tel.: 0221/16905638 Mobil: 01578/4922886 From brian.goetz at oracle.com Fri Oct 11 15:53:40 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Fri, 11 Oct 2013 18:53:40 -0400 Subject: Dynamic filtering conditions in Lambda In-Reply-To: References: Message-ID: <52588174.3020800@oracle.com> How about: name.stream() .filter(n -> startsWith.stream().anyMatch(s -> n.startsWith(s))) ... On 10/11/2013 6:25 PM, Daniel Sachse wrote: > Hey guys, > > I having the following working Java 8 code: > > List names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara", > "Sam", "Sara", "Jil", "Brenda"); > > List result = names.stream().filter(name -> name.startsWith("K")) > > .filter(name -> name.length() == 3) > .collect(toList()); > > ============ > > Now I change it to use multiple possible first letters and lenghts: > > List result = names.stream().filter(name -> name.startsWith("K") || > name.startsWith("B")) > > .filter(name -> name.length() == 3 || name.length() == 4) > .collect(toList()); > > > ============ > > Now I want to rewrite this and use a dynamic list of starting letters and a > dynamic list of length attributes, but I totally got stuck on how to > implement this : > > List names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara", > "Sam", "Sara", "Jil", "Brenda"); > > *List *startsWith* = Arrays.asList("B", "K", "S");* > *List *length* = Arrays.asList(2, 3, 4);* > > List result = names.stream(). > // Filters missing > > .collect(toList()); > > > ============ > > I would be really glad if you could provide me with a solution how this > could be implemented using Lambdas :) > > > Thanks in advance! > > Daniel > > -- > > > Wombat Software Technologies UG (haftungsbeschr?nkt) > Im MediaPark 5 > D-50670 K?ln > > Gesch?ftsf?hrer: Daniel Sachse, Jacob Pawlik > Unternehmenssitz: K?ln > Handelsregister beim Amtsgericht: K?ln > Handelsregister-Nummer: HRB 79316 > > Web: http://www.wombatsoftware.de > Email: mail at wombatsoftware.de > Tel.: 0221/16905638 > Mobil: 01578/4922886 > From henry.jen at oracle.com Fri Oct 11 17:52:10 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Sat, 12 Oct 2013 00:52:10 +0000 Subject: hg: lambda/lambda: 11 new changesets Message-ID: <20131012005211.A868062FBB@hg.openjdk.java.net> Changeset: 0cc21882d2f6 Author: cl Date: 2013-09-26 10:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/0cc21882d2f6 Added tag jdk8-b109 for changeset 91f47e8da5c6 ! .hgtags Changeset: 5ec3c4948863 Author: ksrini Date: 2013-09-27 16:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/5ec3c4948863 8023495: [infra] create 64-bit solaris bits with symlinks Reviewed-by: ihse, tbell, erikj ! common/makefiles/Jprt.gmk ! common/makefiles/Main.gmk Changeset: 72c2495c86c9 Author: katleman Date: 2013-10-01 12:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/72c2495c86c9 Merge Changeset: 0f704e36bc5d Author: ihse Date: 2013-10-01 10:58 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/0f704e36bc5d 8006661: Use LC_ALL=C instead of LANG=C compare.sh Reviewed-by: tbell ! common/bin/compare.sh Changeset: 4faa09c7fe55 Author: erikj Date: 2013-10-02 15:08 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/4faa09c7fe55 Merge Changeset: 669e3e3d4459 Author: katleman Date: 2013-10-02 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/669e3e3d4459 Added tag jdk8-b110 for changeset 4faa09c7fe55 ! .hgtags Changeset: feb4f2d97042 Author: ihse Date: 2013-10-03 11:26 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/feb4f2d97042 8008944: Correct typos Reviewed-by: tbell, erikj ! NewMakefile.gmk ! common/autoconf/generated-configure.sh ! common/autoconf/jdk-options.m4 ! common/makefiles/JavaCompilation.gmk Changeset: d23177734b28 Author: thurka Date: 2013-10-07 13:11 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/d23177734b28 8025920: webrev.ksh does not provide any details about changes in zip files Summary: Add support for diffs for zip files Reviewed-by: ksrini, chegar ! make/scripts/webrev.ksh Changeset: 9b102ab97693 Author: erikj Date: 2013-10-07 18:19 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/9b102ab97693 8005924: Make it possible to set both --with-user-release-suffix and --with-build-number Reviewed-by: ihse, tbell ! common/autoconf/generated-configure.sh ! common/autoconf/jdk-options.m4 ! common/autoconf/spec.gmk.in Changeset: d086227bfc45 Author: katleman Date: 2013-10-08 13:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/d086227bfc45 Merge Changeset: 9fc35f4daa88 Author: henryjen Date: 2013-10-11 15:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/9fc35f4daa88 Merge ! .hgtags - .jcheck/conf ! common/autoconf/generated-configure.sh ! common/makefiles/JavaCompilation.gmk ! common/makefiles/Main.gmk From henry.jen at oracle.com Fri Oct 11 17:54:53 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Sat, 12 Oct 2013 00:54:53 +0000 Subject: hg: lambda/lambda/jaxp: 3 new changesets Message-ID: <20131012005508.9E43962FBD@hg.openjdk.java.net> Changeset: 4c84c5b447b0 Author: cl Date: 2013-09-26 10:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/4c84c5b447b0 Added tag jdk8-b109 for changeset 02bfab2aa938 ! .hgtags Changeset: 17ee0d3e97fd Author: katleman Date: 2013-10-02 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/17ee0d3e97fd Added tag jdk8-b110 for changeset 4c84c5b447b0 ! .hgtags Changeset: 6ccaae97a007 Author: henryjen Date: 2013-10-11 15:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxp/rev/6ccaae97a007 Merge ! .hgtags - .jcheck/conf From henry.jen at oracle.com Fri Oct 11 17:54:33 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Sat, 12 Oct 2013 00:54:33 +0000 Subject: hg: lambda/lambda/corba: 3 new changesets Message-ID: <20131012005438.6CE1462FBC@hg.openjdk.java.net> Changeset: 3d2b7ce93c5c Author: cl Date: 2013-09-26 10:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/3d2b7ce93c5c Added tag jdk8-b109 for changeset 428428cf5e06 ! .hgtags Changeset: 85c1c94e7235 Author: katleman Date: 2013-10-02 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/85c1c94e7235 Added tag jdk8-b110 for changeset 3d2b7ce93c5c ! .hgtags Changeset: 356aaedbbe57 Author: henryjen Date: 2013-10-11 15:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/356aaedbbe57 Merge ! .hgtags - .jcheck/conf From henry.jen at oracle.com Fri Oct 11 17:55:38 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Sat, 12 Oct 2013 00:55:38 +0000 Subject: hg: lambda/lambda/jaxws: 3 new changesets Message-ID: <20131012005551.A2EAE62FBE@hg.openjdk.java.net> Changeset: cc682329886b Author: cl Date: 2013-09-26 10:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/cc682329886b Added tag jdk8-b109 for changeset df5d4d016425 ! .hgtags Changeset: 32edc7a2c866 Author: katleman Date: 2013-10-02 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/32edc7a2c866 Added tag jdk8-b110 for changeset cc682329886b ! .hgtags Changeset: 93337eacc525 Author: henryjen Date: 2013-10-11 15:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jaxws/rev/93337eacc525 Merge ! .hgtags - .jcheck/conf From henry.jen at oracle.com Fri Oct 11 17:56:11 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Sat, 12 Oct 2013 00:56:11 +0000 Subject: hg: lambda/lambda/nashorn: 23 new changesets Message-ID: <20131012005638.3CD7462FBF@hg.openjdk.java.net> Changeset: d1e2050e575e Author: cl Date: 2013-09-26 10:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/d1e2050e575e Added tag jdk8-b109 for changeset 6ec2f9e5ed5b ! .hgtags Changeset: 1971c2d770ae Author: sundar Date: 2013-09-18 13:06 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/1971c2d770ae 8024972: for (LeftHandSideExpression in Expression) crashes the compiler Reviewed-by: lagergren, hannesw ! src/jdk/nashorn/internal/codegen/CodeGenerator.java + test/script/basic/JDK-8024972.js + test/script/basic/JDK-8024972.js.EXPECTED Changeset: a62172fe5bae Author: sundar Date: 2013-09-18 16:36 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/a62172fe5bae 8024973: Using a different ScriptContext with a CompiledScript results in ScriptException Reviewed-by: jlaskey, hannesw ! src/jdk/nashorn/api/scripting/NashornScriptEngine.java ! src/jdk/nashorn/internal/runtime/Source.java ! test/script/trusted/JDK-8008305.js ! test/src/jdk/nashorn/api/scripting/ScriptEngineTest.java Changeset: f954d3f4d192 Author: sundar Date: 2013-09-19 13:34 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/f954d3f4d192 8025048: true as case label results in ClassCastException Reviewed-by: lagergren ! src/jdk/nashorn/internal/codegen/Attr.java + test/script/basic/JDK-8025048-2.js + test/script/basic/JDK-8025048.js Changeset: 740b1133f1b6 Author: hannesw Date: 2013-09-19 15:39 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/740b1133f1b6 8023154: compileAllTests fails with: 2 tests failed to compile Reviewed-by: sundar, jlaskey ! make/build-benchmark.xml ! make/build.xml ! make/project.properties Changeset: 821b0b610861 Author: sundar Date: 2013-09-19 21:20 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/821b0b610861 8025080: Object literal getter, setter function with number format property name results in ClassFormatError Reviewed-by: lagergren, hannesw ! src/jdk/nashorn/internal/ir/debug/JSONWriter.java ! src/jdk/nashorn/internal/parser/Parser.java + test/script/basic/JDK-8025080.js + test/script/basic/JDK-8025080.js.EXPECTED ! test/script/basic/parser/objectLitExpr.js.EXPECTED Changeset: 18d64bc4937d Author: sundar Date: 2013-09-19 23:48 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/18d64bc4937d 8025090: 'while' statement with 'test' using var before being declared in body results in VerifyError Reviewed-by: jlaskey ! src/jdk/nashorn/internal/ir/WhileNode.java + test/script/basic/JDK-8025090.js Changeset: 195be8ca5c97 Author: sundar Date: 2013-09-20 12:56 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/195be8ca5c97 8025111: undefined or null 'with' expression in empty with block should throw TypeError Reviewed-by: lagergren, hannesw ! src/jdk/nashorn/internal/codegen/CodeGenerator.java + test/script/basic/JDK-8025111.js Changeset: fa491b75d3e4 Author: hannesw Date: 2013-09-20 12:11 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/fa491b75d3e4 8022587: ClassCache is not optimal and leaks Source instances Reviewed-by: lagergren, attila ! src/jdk/nashorn/internal/objects/Global.java Changeset: 13210550765c Author: lana Date: 2013-09-20 19:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/13210550765c Merge Changeset: 279f47b353f3 Author: sundar Date: 2013-09-20 20:55 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/279f47b353f3 8025147: Trailing comma is not allowed in JSONArray and JSONObject Reviewed-by: hannesw, jlaskey ! src/jdk/nashorn/internal/parser/JSONParser.java ! src/jdk/nashorn/internal/runtime/resources/Messages.properties + test/script/basic/JDK-8025147.js + test/script/basic/JDK-8025147.js.EXPECTED Changeset: 16b6db9f7225 Author: sundar Date: 2013-09-20 22:37 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/16b6db9f7225 8025149: JSON.stringify does not handle 'space' argument as per the spec. Reviewed-by: jlaskey, hannesw ! src/jdk/nashorn/internal/objects/NativeJSON.java + test/script/basic/JDK-8025149.js + test/script/basic/JDK-8025149.js.EXPECTED Changeset: b8d9a63578e2 Author: hannesw Date: 2013-09-21 10:11 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/b8d9a63578e2 8025163: Date methods should not return -0 Reviewed-by: lagergren, jlaskey ! src/jdk/nashorn/internal/objects/NativeDate.java + test/script/basic/JDK-8025163.js + test/script/basic/JDK-8025163.js.EXPECTED Changeset: 8f6304373671 Author: sundar Date: 2013-09-23 14:20 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/8f6304373671 Merge Changeset: c5475f5d4647 Author: sundar Date: 2013-09-24 20:43 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/c5475f5d4647 8025312: parseInt should convert 'radix' argument to ToInt32 even if empty string is parsed Reviewed-by: jlaskey, hannesw ! src/jdk/nashorn/internal/runtime/GlobalFunctions.java + test/script/basic/JDK-8025312.js + test/script/basic/JDK-8025312.js.EXPECTED Changeset: 754ecd62bde3 Author: sundar Date: 2013-09-25 08:17 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/754ecd62bde3 8025325: parseFloat does not handle '.' in exponent part Reviewed-by: hannesw ! src/jdk/nashorn/internal/runtime/GlobalFunctions.java + test/script/basic/JDK-8025325.js + test/script/basic/JDK-8025325.js.EXPECTED Changeset: 2f8f99e5ed76 Author: hannesw Date: 2013-09-25 16:37 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/2f8f99e5ed76 8025434: RegExp lastIndex can exceed int range Reviewed-by: lagergren, sundar ! src/jdk/nashorn/internal/objects/NativeRegExp.java + test/script/basic/JDK-8025434.js Changeset: 712f5e31739b Author: hannesw Date: 2013-09-26 10:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/712f5e31739b 8025197: String replace method fails with regexp /$/gi Reviewed-by: sundar ! src/jdk/nashorn/internal/objects/NativeRegExp.java + test/script/basic/JDK-8025197.js + test/script/basic/JDK-8025197.js.EXPECTED Changeset: 23958764f866 Author: hannesw Date: 2013-09-26 11:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/23958764f866 8025486: RegExp constructor arguments are not evaluated in right order Reviewed-by: sundar ! src/jdk/nashorn/internal/objects/NativeRegExp.java + test/script/basic/JDK-8025486.js + test/script/basic/JDK-8025486.js.EXPECTED Changeset: f1f027907a69 Author: sundar Date: 2013-09-26 16:37 +0530 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/f1f027907a69 Merge Changeset: d49a8c2173f5 Author: lana Date: 2013-09-26 17:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/d49a8c2173f5 Merge Changeset: 75fd3486e584 Author: katleman Date: 2013-10-02 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/75fd3486e584 Added tag jdk8-b110 for changeset d49a8c2173f5 ! .hgtags Changeset: b3bb83c0e5dd Author: henryjen Date: 2013-10-11 15:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/nashorn/rev/b3bb83c0e5dd Merge - .jcheck/conf From henry.jen at oracle.com Fri Oct 11 17:57:48 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Sat, 12 Oct 2013 00:57:48 +0000 Subject: hg: lambda/lambda/hotspot: 83 new changesets Message-ID: <20131012010102.DD49462FC0@hg.openjdk.java.net> Changeset: fff4842215d1 Author: cl Date: 2013-09-26 10:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/fff4842215d1 Added tag jdk8-b109 for changeset c81dd5393a5e ! .hgtags Changeset: 8a6a85321d3a Author: amurillo Date: 2013-09-20 11:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8a6a85321d3a 8025127: new hotspot build - hs25-b52 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 63147986a428 Author: dcubed Date: 2013-09-18 07:02 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/63147986a428 8019835: Strings interned in different threads equal but does not == Summary: Add -XX:+VerifyStringTableAtExit option and code to verify StringTable invariants. Reviewed-by: rdurbin, sspitsyn, coleenp ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/classfile/javaClasses.hpp ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/java.cpp Changeset: dfae98867ee8 Author: dholmes Date: 2013-09-18 20:08 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/dfae98867ee8 8024826: (s) : Remove alt-rt.jar, used by +AggressiveOps Reviewed-by: alanb, chegar, dholmes, ksrini Contributed-by: Mike Duigou ! src/share/vm/runtime/arguments.cpp Changeset: c1d7040a1183 Author: sgabdura Date: 2013-09-18 16:48 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c1d7040a1183 8022836: JVM crashes in JVMTIENVBASE::GET_CURRENT_CONTENDED_MONITOR and GET_OWNED_MONITOR Summary: Check that the _java_thread parameter is valid when it is possible that the JavaThread has exited after the initial checks were made in generated/jvmtifiles/jvmtiEnter.cpp: jvmti_GetCurrentContendedMonitor() Reviewed-by: dcubed, dsamersoff ! src/share/vm/prims/jvmtiEnvBase.hpp Changeset: 8c84f04ff977 Author: kevinw Date: 2013-09-18 19:50 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8c84f04ff977 Merge Changeset: 6eb908998b32 Author: kevinw Date: 2013-09-19 08:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/6eb908998b32 Merge Changeset: 9ed97b511b26 Author: hseigel Date: 2013-09-19 11:04 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9ed97b511b26 8024517: runtime/CDSCompressedKPtrs/XShareAuto.java failed with RuntimeException Summary: Make sure CDS is off by default when running server compiler. Reviewed-by: dholmes, coleenp ! src/share/vm/runtime/arguments.cpp ! test/runtime/CDSCompressedKPtrs/XShareAuto.java Changeset: 4f9a42c33738 Author: coleenp Date: 2013-09-20 09:30 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4f9a42c33738 8022887: Assertion hit while using class and redefining it with RedefineClasses simultaneously Summary: Need to refetch each method from InstanceKlass after all safepoints. Removed leaky PreviousVersionInfo code. Reviewed-by: dcubed, sspitsyn ! src/share/vm/memory/metaspaceShared.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/runtime/handles.hpp ! src/share/vm/runtime/handles.inline.hpp Changeset: f201713502e0 Author: coleenp Date: 2013-09-20 09:44 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f201713502e0 Merge Changeset: 1b03bed31241 Author: allwin Date: 2013-09-17 17:16 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1b03bed31241 7196151: ParserTest SEGv on solaris Reviewed-by: sla, coleenp, ctornqvi, dsamersoff ! src/share/vm/services/diagnosticArgument.cpp Changeset: e5a25e4ae509 Author: mgerdin Date: 2013-09-20 10:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e5a25e4ae509 Merge Changeset: 7c29904fdfa2 Author: coleenp Date: 2013-09-20 18:34 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/7c29904fdfa2 8014956: nashorn/api/javaaccess/MethodAccessTest.java test fails on sparc-solaris 64 Summary: reference_map[] array had uninitialized junk that was causing a bogus bootstrap method to be found. Reviewed-by: hseigel, dcubed, sspitsyn ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/constantPool.hpp Changeset: df03413ad1a9 Author: coleenp Date: 2013-09-21 01:45 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/df03413ad1a9 Merge Changeset: 0f37d1badced Author: dcubed Date: 2013-09-20 12:58 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/0f37d1badced Merge ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: a7609ec351d6 Author: dcubed Date: 2013-09-20 18:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/a7609ec351d6 Merge ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/constantPool.hpp - test/gc/metaspace/ClassMetaspaceSizeInJmapHeap.java Changeset: 8ddc26f62476 Author: sla Date: 2013-09-22 06:31 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8ddc26f62476 6989981: jstack causes "fatal error: ExceptionMark destructor expects no pending exceptions" Reviewed-by: sla, dsamersoff Contributed-by: Yasumasa Suenaga ! src/share/vm/services/attachListener.cpp Changeset: 1f42d3ec1759 Author: dsamersoff Date: 2013-09-22 18:49 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1f42d3ec1759 7133122: SA throws sun.jvm.hotspot.debugger.UnmappedAddressException when it should not Summary: replace PT_LOAD segment with library segment when necessary Reviewed-by: dholmes, sla ! agent/src/os/linux/ps_core.c Changeset: ae2edb3df7fb Author: dsamersoff Date: 2013-09-22 18:07 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ae2edb3df7fb Merge Changeset: 084b21cd0228 Author: iklam Date: 2013-09-23 08:56 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/084b21cd0228 8025088: Missing cases for JVM_CONSTANT_MethodHandleInError cause crash if debugger steps into error-tagged method handle Summary: Need to refetch each method from InstanceKlass after all safepoints. Removed leaky PreviousVersionInfo code. Reviewed-by: coleenp, sspitsyn ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/constantPool.hpp Changeset: e8a0010ba69e Author: zgu Date: 2013-09-25 13:03 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e8a0010ba69e Merge Changeset: 891687731b59 Author: anoll Date: 2013-09-24 15:56 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/891687731b59 7009641: Don't fail VM when CodeCache is full Summary: Allocation in the code cache returns NULL instead of failing the entire VM Reviewed-by: kvn, iveresov ! src/cpu/sparc/vm/vtableStubs_sparc.cpp ! src/cpu/x86/vm/vtableStubs_x86_32.cpp ! src/cpu/x86/vm/vtableStubs_x86_64.cpp ! src/share/vm/code/compiledIC.cpp ! src/share/vm/code/compiledIC.hpp ! src/share/vm/code/vtableStubs.cpp ! src/share/vm/runtime/sharedRuntime.cpp Changeset: 1b64d46620a3 Author: kvn Date: 2013-09-24 16:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1b64d46620a3 8022585: VM crashes when ran with -XX:+PrintInlining Summary: use adr_at() to access inline info structures in growableArray. Add ability to specify print inlining per method. Reviewed-by: twisti ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/callGenerator.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/compile.hpp ! src/share/vm/opto/doCall.cpp ! src/share/vm/opto/library_call.cpp + test/compiler/print/PrintInlining.java Changeset: f637d4dc21bb Author: adlertz Date: 2013-09-26 08:48 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f637d4dc21bb Merge Changeset: 586fa1919a89 Author: bpittore Date: 2013-09-20 15:06 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/586fa1919a89 8014911: Should use SUPPORTS_NATIVE_CX8 define to help C/C++ compiler elide blocks of code Summary: If SUPPORTS_NATIVE_CX8 true then supports_cx8() function hard coded to return 'true' Reviewed-by: kvn, twisti, dholmes ! src/share/vm/runtime/vm_version.hpp Changeset: 504d8f519adf Author: jiangli Date: 2013-09-20 20:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/504d8f519adf Merge Changeset: d682c6e24fe3 Author: bdelsart Date: 2013-09-26 01:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d682c6e24fe3 Merge Changeset: 60a2d625db36 Author: bdelsart Date: 2013-09-26 04:00 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/60a2d625db36 Merge Changeset: 2c022e432e10 Author: stefank Date: 2013-09-20 10:53 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/2c022e432e10 8024974: Incorrect use of GC_locker::is_active() Summary: SymbolTable and StringTable can make calls to GC_locker::is_active() outside a safepoint. This isn't safe because the GC_locker active state (lock count) is only updated at a safepoint and only remains valid as long as _needs_gc is true. However, outside a safepoint_needs_gc can change to false at any time, which makes it impossible to do a correct call to is_active() in that context. In this case these calls can just be removed since the input argument to basic_add() should never be on the heap and so there's no need to check the GC_locker state. This change also adjusts the assert() in is_active() to makes sure all calls to this function are always done under a safepoint. Reviewed-by: brutisso, dcubed Contributed-by: per.liden at oracle.com ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/memory/gcLocker.cpp ! src/share/vm/memory/gcLocker.hpp Changeset: 9361de86a50f Author: stefank Date: 2013-09-20 11:00 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9361de86a50f 8025059: Metspace::should_expand mixes bytes and words in check against MaxMetaspaceSize Reviewed-by: coleenp, brutisso, mgerdin, jmasa ! src/share/vm/memory/metaspace.cpp Changeset: b960c9df4f11 Author: stefank Date: 2013-09-21 10:09 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b960c9df4f11 8025096: Move the ChunkManager instances out of the VirtualSpaceLists Reviewed-by: coleenp, mgerdin, jmasa ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp Changeset: 10cc3b624f8f Author: tschatzl Date: 2013-09-24 10:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/10cc3b624f8f Merge - test/runtime/6878713/Test6878713.sh - test/runtime/6878713/testcase.jar - test/runtime/7020373/Test7020373.sh - test/runtime/7020373/testcase.jar Changeset: a19bea467577 Author: tschatzl Date: 2013-09-25 13:25 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/a19bea467577 7163191: G1: introduce a "heap spanning table" abstraction Summary: Add G1BiasedArray that is an array where each element represents a fixed-sized subdivision of the heap. Use this abstraction to refactor the HeapRegionSeq class. Reviewed-by: brutisso ! make/excludeSrc.make + src/share/vm/gc_implementation/g1/g1BiasedArray.cpp + src/share/vm/gc_implementation/g1/g1BiasedArray.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.cpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.hpp ! src/share/vm/gc_implementation/g1/heapRegionSeq.inline.hpp ! src/share/vm/gc_implementation/g1/vmStructs_g1.hpp ! src/share/vm/prims/jni.cpp Changeset: 03f493ce3a71 Author: brutisso Date: 2013-09-25 17:23 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/03f493ce3a71 8025228: assert(new_entry->reserved_words() == vs_word_size) fails in nightly Reviewed-by: mgerdin, tschatzl, jmasa ! src/share/vm/memory/metaspace.cpp ! src/share/vm/prims/jni.cpp Changeset: 461159cd7a91 Author: tschatzl Date: 2013-09-26 12:18 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/461159cd7a91 Merge ! src/share/vm/classfile/symbolTable.cpp Changeset: 3da9fad1391e Author: tschatzl Date: 2013-09-26 06:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/3da9fad1391e Merge Changeset: 58043478c26d Author: amurillo Date: 2013-09-26 13:33 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/58043478c26d Merge Changeset: 6209b0ed51c0 Author: amurillo Date: 2013-09-26 13:33 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/6209b0ed51c0 Added tag hs25-b52 for changeset 58043478c26d ! .hgtags Changeset: ebfa5793d349 Author: katleman Date: 2013-10-02 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ebfa5793d349 Added tag jdk8-b110 for changeset 6209b0ed51c0 ! .hgtags Changeset: 24250c363d7f Author: amurillo Date: 2013-09-26 13:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/24250c363d7f 8025536: new hotspot build - hs25-b53 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 899ecf76b570 Author: dsimms Date: 2013-09-25 13:58 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/899ecf76b570 8023956: Provide a work-around to broken Linux 32 bit "Exec Shield" using CS for NX emulation (crashing with SI_KERNEL) Summary: Execute some code at a high virtual address value, and keep mapped Reviewed-by: coleenp, zgu ! src/os/linux/vm/os_linux.cpp ! src/os_cpu/linux_x86/vm/os_linux_x86.cpp ! src/os_cpu/linux_x86/vm/os_linux_x86.hpp Changeset: 5b1191bf0b4b Author: ctornqvi Date: 2013-09-25 17:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5b1191bf0b4b 8024677: [TESTBUG] Move tests for classes in /testlibrary Summary: Moved the tests to /testlibrary_tests and updated TEST.groups Reviewed-by: dholmes, sla ! test/TEST.groups - test/testlibrary/AssertsTest.java - test/testlibrary/OutputAnalyzerReportingTest.java - test/testlibrary/OutputAnalyzerTest.java + test/testlibrary_tests/AssertsTest.java + test/testlibrary_tests/OutputAnalyzerReportingTest.java + test/testlibrary_tests/OutputAnalyzerTest.java Changeset: c1fbf21c7397 Author: ctornqvi Date: 2013-09-25 17:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c1fbf21c7397 8024492: [TESTBUG] Test library class Platform.java needs to include methods for missing OS's and architectures Summary: Added methods for 32bit, arm, ppc, x64 and x86 Reviewed-by: zgu, hseigel, mseledtsov ! test/testlibrary/com/oracle/java/testlibrary/Platform.java Changeset: 190899198332 Author: hseigel Date: 2013-09-26 10:25 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/190899198332 7195622: CheckUnhandledOops has limited usefulness now Summary: Enable CHECK_UNHANDLED_OOPS in fastdebug builds across all supported platforms. Reviewed-by: coleenp, hseigel, dholmes, stefank, twisti, ihse, rdurbin Contributed-by: lois.foltan at oracle.com ! make/bsd/makefiles/fastdebug.make ! make/linux/makefiles/fastdebug.make ! make/windows/makefiles/fastdebug.make ! src/cpu/sparc/vm/frame_sparc.cpp ! src/cpu/sparc/vm/nativeInst_sparc.cpp ! src/cpu/x86/vm/frame_x86.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/classfile/classLoaderData.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/compiler/oopMap.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1OopClosures.hpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/gc_implementation/g1/heapRegion.cpp ! src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp ! src/share/vm/gc_implementation/parNew/parNewGeneration.cpp ! src/share/vm/gc_implementation/parNew/parOopClosures.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.cpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp ! src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.inline.hpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.inline.hpp ! src/share/vm/interpreter/bytecodeTracer.cpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/memory/referenceProcessor.cpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceMirrorKlass.hpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/oops/methodData.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/oops/oopsHierarchy.hpp ! src/share/vm/opto/machnode.cpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/runtime/biasedLocking.cpp ! src/share/vm/runtime/deoptimization.cpp ! src/share/vm/runtime/frame.cpp ! src/share/vm/runtime/javaCalls.cpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vframeArray.cpp ! src/share/vm/services/classLoadingService.cpp ! src/share/vm/services/heapDumper.cpp ! src/share/vm/services/memoryManager.cpp ! src/share/vm/services/memoryPool.cpp ! src/share/vm/utilities/globalDefinitions.hpp ! src/share/vm/utilities/globalDefinitions_visCPP.hpp ! src/share/vm/utilities/hashtable.cpp ! src/share/vm/utilities/taskqueue.hpp Changeset: a5ac0873476c Author: zgu Date: 2013-09-27 10:08 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/a5ac0873476c Merge ! src/share/vm/classfile/symbolTable.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/runtime/sharedRuntime.cpp Changeset: 36b97be47bde Author: acorn Date: 2013-10-01 08:10 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/36b97be47bde 8011311: Private interface methods. Default conflicts:ICCE. no erased_super_default. Reviewed-by: coleenp, bharadwaj, minqi ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/classfile/defaultMethods.hpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/klassVtable.cpp Changeset: de059a14e159 Author: zgu Date: 2013-10-01 08:54 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/de059a14e159 8022187: Missing ResourceMark crash when assertion using FormatBufferResource fails Summary: Uses stack for the format buffer instead of resource memory Reviewed-by: kvn, coleenp ! src/share/vm/utilities/array.hpp Changeset: 90b27e931639 Author: zgu Date: 2013-10-01 09:21 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/90b27e931639 Merge Changeset: 31f0118ea584 Author: zgu Date: 2013-10-01 11:06 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/31f0118ea584 Merge Changeset: 72b7e96c1922 Author: twisti Date: 2013-09-26 12:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/72b7e96c1922 8024545: make develop and notproduct flag values available in product builds Reviewed-by: dholmes, kvn ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/share/vm/prims/jvm.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/globals.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/globals_extension.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/services/attachListener.cpp ! src/share/vm/services/classLoadingService.cpp ! src/share/vm/services/dtraceAttacher.cpp ! src/share/vm/services/management.cpp ! src/share/vm/services/memoryService.cpp Changeset: c9ccd7b85f20 Author: rbackman Date: 2013-09-27 08:39 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c9ccd7b85f20 8024924: Intrinsify java.lang.Math.addExact Reviewed-by: kvn, twisti ! src/cpu/sparc/vm/sparc.ad ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/adlc/adlparse.cpp ! src/share/vm/adlc/archDesc.cpp ! src/share/vm/adlc/formssel.cpp ! src/share/vm/adlc/formssel.hpp ! src/share/vm/adlc/output_h.cpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/classes.cpp ! src/share/vm/opto/classes.hpp ! src/share/vm/opto/ifnode.cpp ! src/share/vm/opto/lcm.cpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/loopTransform.cpp ! src/share/vm/opto/loopopts.cpp ! src/share/vm/opto/matcher.cpp ! src/share/vm/opto/matcher.hpp + src/share/vm/opto/mathexactnode.cpp + src/share/vm/opto/mathexactnode.hpp ! src/share/vm/opto/multnode.cpp ! src/share/vm/opto/node.hpp ! src/share/vm/opto/subnode.cpp ! src/share/vm/opto/subnode.hpp ! src/share/vm/opto/type.cpp ! src/share/vm/opto/type.hpp ! src/share/vm/runtime/vmStructs.cpp + test/compiler/intrinsics/mathexact/CondTest.java + test/compiler/intrinsics/mathexact/ConstantTest.java + test/compiler/intrinsics/mathexact/LoadTest.java + test/compiler/intrinsics/mathexact/LoopDependentTest.java + test/compiler/intrinsics/mathexact/NonConstantTest.java + test/compiler/intrinsics/mathexact/Verify.java Changeset: 510fbd28919c Author: anoll Date: 2013-09-27 10:50 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/510fbd28919c 8020151: PSR:PERF Large performance regressions when code cache is filled Summary: Code cache sweeping based on method hotness; removed speculatively disconnect Reviewed-by: kvn, iveresov ! src/share/vm/code/codeCache.cpp ! src/share/vm/code/codeCache.hpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/code/nmethod.hpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/oops/method.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/sweeper.cpp ! src/share/vm/runtime/sweeper.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/runtime/vm_operations.cpp ! src/share/vm/runtime/vm_operations.hpp ! src/share/vm/trace/trace.xml Changeset: a07c25e4f67e Author: adlertz Date: 2013-09-27 12:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/a07c25e4f67e Merge ! src/share/vm/prims/jvm.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/services/attachListener.cpp Changeset: 1c3486050433 Author: adlertz Date: 2013-09-27 15:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1c3486050433 Merge ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: e8e077292da3 Author: iignatyev Date: 2013-09-28 12:32 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e8e077292da3 8024678: Java source files in hotspot/test/testlibrary should not use @author tag in JavaDoc Reviewed-by: twisti ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/ClassPathDirEntry.java ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/ClassPathJarEntry.java ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/ClassPathJarInDirEntry.java ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/ClassesListInFile.java ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/CompileTheWorld.java ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/Compiler.java ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/PathHandler.java ! test/testlibrary/ctw/src/sun/hotspot/tools/ctw/Utils.java Changeset: 303826f477c6 Author: iignatyev Date: 2013-09-28 12:32 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/303826f477c6 8023452: TestCase$Helper(java.lang.Object) must be osr_compiled Reviewed-by: kvn ! test/compiler/whitebox/CompilerWhiteBoxTest.java ! test/compiler/whitebox/DeoptimizeAllTest.java ! test/compiler/whitebox/DeoptimizeMethodTest.java ! test/compiler/whitebox/EnqueueMethodForCompilationTest.java ! test/compiler/whitebox/IsMethodCompilableTest.java ! test/compiler/whitebox/MakeMethodNotCompilableTest.java Changeset: f2512d89ad0c Author: twisti Date: 2013-09-28 12:42 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f2512d89ad0c 8025613: clang: remove -Wno-unused-value Reviewed-by: iveresov ! agent/src/os/linux/LinuxDebuggerLocal.c ! agent/src/os/linux/ps_proc.c ! agent/src/os/linux/salibelf.c ! agent/src/os/linux/symtab.c ! make/bsd/makefiles/gcc.make ! make/linux/makefiles/gcc.make ! src/cpu/x86/vm/assembler_x86.cpp ! src/share/vm/classfile/defaultMethods.cpp Changeset: 29bdcf12457c Author: shade Date: 2013-09-27 11:52 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/29bdcf12457c 8014447: Object.hashCode intrinsic breaks inline caches Summary: Try to inline as normal method first, then fall back to intrinsic. Reviewed-by: kvn, twisti ! src/share/vm/opto/callGenerator.hpp ! src/share/vm/opto/doCall.cpp ! src/share/vm/opto/library_call.cpp Changeset: d8d059e90ec1 Author: twisti Date: 2013-09-30 15:42 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d8d059e90ec1 8025599: Missing store barrier with OptimizeStringConcat Reviewed-by: kvn, twisti Contributed-by: Axel Siebenborn ! src/share/vm/opto/graphKit.cpp Changeset: dc261f466b6d Author: drchase Date: 2013-09-27 13:36 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/dc261f466b6d 8025260: Methodhandles/JSR292: NullPointerException (NPE) thrown instead of AbstractMethodError (AME) Summary: Copied null-checks from templateInterpreter_CPU into methodHandles_CPU Reviewed-by: jrose, twisti ! src/cpu/sparc/vm/methodHandles_sparc.cpp ! src/cpu/x86/vm/methodHandles_x86.cpp + test/compiler/jsr292/methodHandleExceptions/ByteClassLoader.java + test/compiler/jsr292/methodHandleExceptions/C.java + test/compiler/jsr292/methodHandleExceptions/I.java + test/compiler/jsr292/methodHandleExceptions/TestAMEnotNPE.java Changeset: cacc4c6bfc80 Author: vlivanov Date: 2013-10-02 06:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/cacc4c6bfc80 8025233: Move sun.invoke.Stable into java.lang.invoke package Reviewed-by: twisti, iveresov ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/vmSymbols.hpp Changeset: 268e7a2178d7 Author: iveresov Date: 2013-10-03 16:38 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/268e7a2178d7 Merge ! src/cpu/x86/vm/methodHandles_x86.cpp ! src/cpu/x86/vm/x86_32.ad ! src/cpu/x86/vm/x86_64.ad ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/code/nmethod.cpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/services/classLoadingService.cpp Changeset: d68894a09c7c Author: jiangli Date: 2013-09-27 13:49 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d68894a09c7c 8024990: JT_JDK: 11 failures with SIGSEGV on arm-sflt platforms in nightly fastdebug build. Summary: Enable patching for load_appendix_id. Reviewed-by: kvn, dlong, bdelsart ! src/share/vm/c1/c1_Runtime1.cpp Changeset: 5186dcaca431 Author: jiangli Date: 2013-09-27 13:53 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5186dcaca431 Merge ! src/share/vm/c1/c1_Runtime1.cpp - test/gc/metaspace/ClassMetaspaceSizeInJmapHeap.java - test/runtime/6878713/Test6878713.sh - test/runtime/6878713/testcase.jar - test/runtime/7020373/Test7020373.sh - test/runtime/7020373/testcase.jar Changeset: d0cfa6502dfe Author: jprovino Date: 2013-10-03 10:25 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d0cfa6502dfe Merge ! src/share/vm/c1/c1_Runtime1.cpp Changeset: 100614790c1e Author: vladidan Date: 2013-10-03 10:35 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/100614790c1e Merge Changeset: c319b188c7b2 Author: tschatzl Date: 2013-09-26 12:49 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c319b188c7b2 8014078: G1: improve remembered set summary information by providing per region type information Summary: Add memory consumption breakdown on a per region type in the G1 remembered set summary statistics. This simplifies remembered set memory consumption analysis. Reviewed-by: brutisso ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/g1RemSet.hpp ! src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp ! test/gc/g1/TestSummarizeRSetStats.java + test/gc/g1/TestSummarizeRSetStatsPerRegion.java + test/gc/g1/TestSummarizeRSetStatsTools.java Changeset: bc918fd1e584 Author: mgerdin Date: 2013-09-27 10:23 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/bc918fd1e584 8025279: metaspace/flags/maxMetaspaceSize throws OOM: out of Compressed Klass space Summary: Only put "Compressed class space" as OOM cause if actually using Compressed class space Reviewed-by: jwilhelm, stefank, ehelin, coleenp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp Changeset: 4fa18058548e Author: tschatzl Date: 2013-09-27 11:18 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4fa18058548e Merge Changeset: ccef6e165e8b Author: tschatzl Date: 2013-09-27 13:41 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ccef6e165e8b Merge Changeset: d55c004e1d4d Author: mgerdin Date: 2013-09-24 14:46 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d55c004e1d4d 8025305: Cleanup CardTableModRefBS usage in G1 Summary: Move some G1 specific code from CardTableModRefBS to G1SATBCardTableModRefBS. Reviewed-by: brutisso, tschatzl, ehelin ! src/share/vm/gc_implementation/g1/concurrentMark.inline.hpp ! src/share/vm/gc_implementation/g1/g1CardCounts.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp ! src/share/vm/gc_implementation/g1/g1EvacFailure.hpp ! src/share/vm/gc_implementation/g1/g1MarkSweep.cpp ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp ! src/share/vm/memory/cardTableModRefBS.cpp ! src/share/vm/memory/cardTableModRefBS.hpp Changeset: 7ec10139bf37 Author: tschatzl Date: 2013-09-30 12:43 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/7ec10139bf37 8025441: G1: assert "assert(thread < _num_vtimes) failed: just checking" fails when G1ConcRefinementThreads > ParallelGCThreads Summary: The initialization for the remembered set summary data structures used the wrong thread count, i.e. number of worker threads instead of number of refinement threads. Reviewed-by: brutisso ! src/share/vm/gc_implementation/g1/g1RemSet.cpp ! src/share/vm/gc_implementation/g1/g1RemSetSummary.cpp ! src/share/vm/gc_implementation/g1/g1RemSetSummary.hpp + test/gc/g1/TestSummarizeRSetStatsThreads.java Changeset: 9de9169ddde6 Author: brutisso Date: 2013-10-01 07:52 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9de9169ddde6 8025605: G1: Heap expansion logging misleading for fully expanded heap Reviewed-by: tschatzl, jwilhelm, jmasa ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Changeset: 9ecd6d3782b1 Author: ehelin Date: 2013-10-01 15:21 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9ecd6d3782b1 8025313: MetaspaceMemoryPool incorrectly reports undefined size for max Reviewed-by: stefank, tschatzl ! src/share/vm/memory/collectorPolicy.cpp Changeset: 77a774ab3cf0 Author: mgerdin Date: 2013-10-02 14:33 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/77a774ab3cf0 8012525: gc/metaspace/G1AddMetaspaceDependency.java Test fails a safepoint timeout assertion or hangs. Reviewed-by: brutisso, tschatzl ! test/gc/metaspace/G1AddMetaspaceDependency.java Changeset: 6e22e7042433 Author: ehelin Date: 2013-09-30 11:39 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/6e22e7042433 8025226: TestPerfCountersAndMemoryPools.java fails with -Xmixed or -Xcomp Reviewed-by: brutisso, mgerdin ! test/gc/metaspace/TestPerfCountersAndMemoryPools.java Changeset: 379ef2cc19c0 Author: ehelin Date: 2013-10-02 18:24 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/379ef2cc19c0 Merge Changeset: ab68fc0101ce Author: jwilhelm Date: 2013-10-03 13:19 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ab68fc0101ce 8025855: Simplify GenRemSet code slightly Summary: Remove a few redundant switch-statements Reviewed-by: jcoomes, tschatzl ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/genRemSet.cpp Changeset: c49c7f835e8d Author: jwilhelm Date: 2013-10-03 17:16 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c49c7f835e8d 8025853: Remove unnecessary uses of GenerationSizer Summary: Removed stray includes and some minor cleanup of GenerationSizer Reviewed-by: tschatzl, jcoomes ! src/share/vm/gc_implementation/parallelScavenge/generationSizer.hpp ! src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp ! src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp ! src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp ! src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp ! src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Changeset: 798522662fcd Author: jcoomes Date: 2013-10-04 13:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/798522662fcd Merge ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp Changeset: 562a3d356de6 Author: amurillo Date: 2013-10-04 14:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/562a3d356de6 Merge - test/testlibrary/AssertsTest.java - test/testlibrary/OutputAnalyzerReportingTest.java - test/testlibrary/OutputAnalyzerTest.java Changeset: f6962730bbde Author: amurillo Date: 2013-10-04 14:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f6962730bbde Added tag hs25-b53 for changeset 562a3d356de6 ! .hgtags Changeset: 4b68c8075fec Author: henryjen Date: 2013-10-11 15:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4b68c8075fec Merge ! .hgtags - .jcheck/conf ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/classfile/defaultMethods.hpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/oops/method.cpp ! src/share/vm/runtime/globals.hpp From henry.jen at oracle.com Fri Oct 11 18:01:48 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Sat, 12 Oct 2013 01:01:48 +0000 Subject: hg: lambda/lambda/jdk: 120 new changesets Message-ID: <20131012012916.EEDE162FC3@hg.openjdk.java.net> Changeset: f8c9a4b80148 Author: cl Date: 2013-09-26 10:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f8c9a4b80148 Added tag jdk8-b109 for changeset 946f3fd5f8bf ! .hgtags Changeset: 529cd4de1823 Author: prr Date: 2013-09-26 15:06 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/529cd4de1823 7092764: java.awt.font.TransformAttribute.equals(null) throws NPE Reviewed-by: jgodinez, jchen ! src/share/classes/java/awt/font/TransformAttribute.java + test/java/awt/font/TransformAttribute/TransformEqualityTest.java Changeset: 1bcd48cfb7be Author: ceisserer Date: 2013-09-26 16:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1bcd48cfb7be 8024895: xrender MaskImage cache isn't accounting for change in alpha Reviewed-by: prr, jchen ! src/solaris/classes/sun/java2d/xr/XRMaskImage.java + test/java/awt/image/DrawImage/EABlitTest.java Changeset: dae020405903 Author: lana Date: 2013-09-26 17:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/dae020405903 Merge Changeset: 0151f12bd392 Author: malenkov Date: 2013-08-22 17:17 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0151f12bd392 8023536: Some regression tests have a wrong header Reviewed-by: alexsch ! test/java/beans/Performance/Test7122740.java ! test/java/beans/Performance/Test7184799.java ! test/javax/swing/JTree/8013571/Test8013571.java Changeset: b71f112dab2a Author: malenkov Date: 2013-08-22 21:05 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b71f112dab2a 7057769: JScrollBar spec should specify that unit increment & decrement functionality may not be present Reviewed-by: alexsch ! src/share/classes/javax/swing/JScrollBar.java Changeset: f983fd18dd81 Author: malenkov Date: 2013-08-23 19:29 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f983fd18dd81 7080613: java.beans.DefaultPersistenceDelegate.instantiate(..) doesn't throw NPE Reviewed-by: alexsch ! src/share/classes/java/beans/DefaultPersistenceDelegate.java ! src/share/classes/java/beans/PersistenceDelegate.java Changeset: 22ef5187a3e6 Author: dmarkov Date: 2013-08-26 17:21 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/22ef5187a3e6 8023474: First mousepress doesn't start editing in JTree Reviewed-by: alexp, anthony ! src/share/classes/java/awt/Component.java ! src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java ! src/share/classes/sun/awt/AWTAccessor.java + test/javax/swing/plaf/basic/BasicTreeUI/8023474/bug8023474.java Changeset: abd068530590 Author: malenkov Date: 2013-08-27 12:53 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/abd068530590 7195179: ClassCastException for null values in JComboBox Reviewed-by: alexsch ! src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java + test/javax/swing/JComboBox/7195179/Test7195179.java Changeset: 92adff44c841 Author: malenkov Date: 2013-08-27 13:13 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/92adff44c841 8021379: JFileChooser Create New Folder button enabled in write proteced directory Reviewed-by: alexsch ! src/share/classes/sun/swing/FilePane.java Changeset: 4bfcf9c5ced3 Author: malenkov Date: 2013-08-27 13:37 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4bfcf9c5ced3 8022398: javax/swing/JFileChooser/8013442/Test8013442.java fails Reviewed-by: alexsch ! src/macosx/classes/com/apple/laf/AquaFileChooserUI.java ! src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java ! src/share/classes/com/sun/java/swing/plaf/motif/MotifFileChooserUI.java ! src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java ! src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java + src/share/classes/sun/swing/AbstractFilterComboBoxModel.java ! src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java Changeset: e11ed7187b0c Author: lana Date: 2013-08-27 21:46 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e11ed7187b0c Merge - src/share/classes/com/sun/security/auth/PolicyParser.java - src/share/classes/com/sun/security/auth/SubjectCodeSource.java - src/share/classes/java/util/jar/UnsupportedProfileException.java - src/share/classes/sun/security/provider/ConfigSpiFile.java - test/java/net/URLClassLoader/profiles/Basic.java - test/java/net/URLClassLoader/profiles/Lib.java - test/java/net/URLClassLoader/profiles/basic.sh - test/tools/jar/AddAndUpdateProfile.java - test/tools/launcher/profiles/Basic.java - test/tools/launcher/profiles/Logging.java - test/tools/launcher/profiles/Main.java - test/tools/launcher/profiles/VersionCheck.java Changeset: 43de418f1345 Author: ptbrunet Date: 2013-08-28 17:25 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/43de418f1345 8011955: Lunar screen reader crashes intermittently in WindowsAccessBridge-32.DLL 6995891: JAWS will occasionally stop speaking focused objects as user TABs -> problem with message queue 8014738: Combobox menu items are not announced with JAWS 8011938: Java Ferret example corrupts JCombobox of the running application 8012011: JAB 2.0.2 incompletely shows kbd accelerator in menus 8022966: Java Access Bridge no longer usable with screen magnifiers Reviewed-by: raginip, tbell, erikj, art ! make/bridge/AccessBridgeJava/Makefile ! makefiles/CompileJavaClasses.gmk ! makefiles/GensrcMisc.gmk Changeset: 35644adc3269 Author: malenkov Date: 2013-08-28 17:32 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/35644adc3269 6968363: ClassCastException while entering HINDI characters with CustomDocument Reviewed-by: alexsch ! src/share/classes/javax/swing/text/AbstractDocument.java ! src/share/classes/javax/swing/text/DefaultCaret.java ! src/share/classes/javax/swing/text/GlyphPainter2.java ! src/share/classes/javax/swing/text/ParagraphView.java + test/javax/swing/text/AbstractDocument/6968363/Test6968363.java Changeset: 6432f8749e1d Author: pchelko Date: 2013-08-30 11:11 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6432f8749e1d 8023966: JViewPort.BLIT_SCROLL_MODE does not work in JLightweightFrame Reviewed-by: anthony, ant ! src/share/classes/javax/swing/JViewport.java Changeset: 7151f08eeadf Author: alexsch Date: 2013-08-30 13:28 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7151f08eeadf 8022401: [macosx] javax/swing/text/JTextComponent/5074573/bug5074573.java fails Reviewed-by: anthony ! src/macosx/native/sun/awt/AWTEvent.m + test/java/awt/event/KeyEvent/KeyChar/KeyCharTest.java Changeset: f2f614e31522 Author: malenkov Date: 2013-09-02 14:06 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f2f614e31522 7156658: JTextComponent.setFocusAccelerator() spec does not state that focus accelerator is L&F dependent Reviewed-by: alexsch ! src/share/classes/javax/swing/text/JTextComponent.java Changeset: 6ffa2680e139 Author: art Date: 2013-09-02 16:48 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6ffa2680e139 8022184: Fix static , Raw warnings in classes belonging to java.awt Reviewed-by: art, anthony Contributed-by: Srikalyan Chandrashekar ! src/share/classes/java/awt/AWTKeyStroke.java ! src/share/classes/java/awt/CardLayout.java ! src/share/classes/java/awt/ContainerOrderFocusTraversalPolicy.java ! src/share/classes/java/awt/DefaultKeyboardFocusManager.java ! src/share/classes/java/awt/GradientPaintContext.java ! src/share/classes/java/awt/GraphicsEnvironment.java ! src/share/classes/java/awt/KeyboardFocusManager.java ! src/share/classes/java/awt/SequencedEvent.java ! src/share/classes/java/awt/TexturePaintContext.java ! src/share/classes/java/awt/WaitDispatchSupport.java Changeset: b5ed8686cc01 Author: malenkov Date: 2013-09-03 11:00 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b5ed8686cc01 6943780: JTabbedPane throws ArrayIndexOutOfBoundsException sometimes Reviewed-by: alexsch ! src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java + test/javax/swing/plaf/basic/BasicTabbedPaneUI/Test6943780.java Changeset: 80a8c4ff3b51 Author: alexsch Date: 2013-09-03 17:27 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/80a8c4ff3b51 8007156: [macosx] Wrong events in processKeyBinding of JTable Submit Date Reviewed-by: leonidr ! src/macosx/classes/sun/lwawt/LWComponentPeer.java ! src/macosx/classes/sun/lwawt/LWWindowPeer.java + test/java/awt/event/KeyEvent/ExtendedKeyCode/ExtendedKeyCodeTest.java Changeset: 2ad01ecbaf90 Author: malenkov Date: 2013-09-03 21:53 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2ad01ecbaf90 7172865: PropertyDescriptor fails to work with setter method name if setter is non-void Reviewed-by: art, alexsch ! src/share/classes/java/beans/IndexedPropertyDescriptor.java ! src/share/classes/java/beans/MethodDescriptor.java + src/share/classes/java/beans/MethodRef.java ! src/share/classes/java/beans/PropertyDescriptor.java + test/java/beans/Introspector/Test7172865.java Changeset: ba711056009f Author: pchelko Date: 2013-09-04 14:32 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ba711056009f 8021943: FileDialog getFile returns corrupted string after previous setFile Reviewed-by: anthony, serb Contributed-by: alexander.zvegintsev at oracle.com ! src/windows/native/sun/windows/awt_FileDialog.cpp Changeset: ba041df8a554 Author: mcherkas Date: 2013-09-04 18:12 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ba041df8a554 8023565: JPG causes javax.imageio.IIOException: ICC APP2 encoutered without prior JFIF Reviewed-by: bae, vadim ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java Changeset: e4ba3d9ea041 Author: mcherkas Date: 2013-09-05 15:37 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e4ba3d9ea041 8023392: Swing text components printed with spaces between chars Reviewed-by: alexsch, alexp Contributed-by: anton.nashatyrev at oracle.com ! src/share/classes/sun/swing/SwingUtilities2.java + test/java/awt/print/bug8023392/bug8023392.html + test/java/awt/print/bug8023392/bug8023392.java Changeset: d267c066b006 Author: lana Date: 2013-09-06 15:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d267c066b006 Merge - src/share/classes/sun/misc/Compare.java - src/share/classes/sun/misc/Sort.java Changeset: fbb6f976d780 Author: alexsch Date: 2013-09-09 17:14 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fbb6f976d780 8024413: Add tests for issues JDK-8002077 and JDK-7199708 Reviewed-by: malenkov, leonidr + test/javax/swing/JFileChooser/7199708/bug7199708.java + test/javax/swing/JFileChooser/8002077/bug8002077.java Changeset: 3ea08767fc0d Author: alexsch Date: 2013-09-09 18:34 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3ea08767fc0d 8020060: MoleculeViewerTest demo doesn't work due to SecurityPermissions Reviewed-by: malenkov, erikj ! makefiles/CompileDemos.gmk ! src/share/demo/applets/MoleculeViewer/XYZApp.java ! src/share/demo/applets/MoleculeViewer/example1.html ! src/share/demo/applets/MoleculeViewer/example2.html ! src/share/demo/applets/MoleculeViewer/example3.html ! src/share/demo/applets/WireFrame/ThreeD.java ! src/share/demo/applets/WireFrame/example1.html ! src/share/demo/applets/WireFrame/example2.html ! src/share/demo/applets/WireFrame/example3.html ! src/share/demo/applets/WireFrame/example4.html Changeset: fc5d16fec25f Author: serb Date: 2013-09-09 21:03 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fc5d16fec25f 8023042: Inaccuracy in documentation in a sound area Reviewed-by: prr ! src/share/classes/javax/sound/sampled/AudioFileFormat.java ! src/share/classes/javax/sound/sampled/AudioFormat.java Changeset: 9d0d961fb1cd Author: pchelko Date: 2013-09-10 11:00 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9d0d961fb1cd 8024381: The test for 8020210 does not have @bug tag Reviewed-by: anthony, serb ! test/java/awt/Window/MaximizeOffscreen/MaximizeOffscreenTest.java Changeset: 8b6dace81d6c Author: alexsch Date: 2013-09-10 14:33 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8b6dace81d6c 8021253: JFileChooser does not react on pressing enter since java 7 Reviewed-by: malenkov ! src/share/classes/javax/swing/JFileChooser.java + test/javax/swing/JFileChooser/8021253/bug8021253.java Changeset: 1daffcf035c4 Author: malenkov Date: 2013-09-10 17:06 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1daffcf035c4 7057770: (spec)Scrollbar spec should specify that unit increment & decrement functionality may not be present Reviewed-by: alexsch ! src/share/classes/java/awt/Scrollbar.java Changeset: eedb2b6d93ec Author: malenkov Date: 2013-09-10 17:12 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/eedb2b6d93ec 8024407: [macosx] javax/swing/JScrollBar/7163696/Test7163696.java failed intermittently on macos Reviewed-by: alexsch ! test/javax/swing/JScrollBar/7163696/Test7163696.java Changeset: 0cc00c11e17e Author: leonidr Date: 2013-09-10 20:42 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0cc00c11e17e 8003901: [macosx] Need test for JDK-8002114 Reviewed-by: anthony, serb ! test/javax/swing/JMenuItem/ActionListenerCalledTwice/ActionListenerCalledTwiceTest.java Changeset: 04fbd34fda7b Author: bagiras Date: 2013-09-12 14:56 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/04fbd34fda7b 8003965: Toolkit.beep() documentation is ambiguous Reviewed-by: anthony ! src/share/classes/java/awt/Toolkit.java Changeset: def1fa9854f7 Author: bagiras Date: 2013-09-12 15:50 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/def1fa9854f7 7064312: Cleanup: avoid using unsafe string function Reviewed-by: serb, pchelko ! src/windows/native/sun/windows/awt_FileDialog.cpp ! src/windows/native/sun/windows/awt_Font.cpp ! src/windows/native/sun/windows/awt_PrintControl.cpp ! src/windows/native/sun/windows/awt_Toolkit.cpp ! src/windows/native/sun/windows/awt_TrayIcon.cpp ! src/windows/native/sun/windows/awt_ole.cpp Changeset: 6321e4429a38 Author: serb Date: 2013-09-12 18:21 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6321e4429a38 7124537: [macosx] Menu shortcuts for all menu items should be disabled if a menu itself is disabled Reviewed-by: anthony, leonidr ! src/macosx/classes/sun/lwawt/macosx/CMenu.java ! src/macosx/classes/sun/lwawt/macosx/CMenuItem.java ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Changeset: 3213c388740a Author: dmarkov Date: 2013-09-12 18:44 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3213c388740a 8024395: Improve fix for line break calculations Reviewed-by: alexp, alexsch ! src/share/classes/javax/swing/text/FlowView.java ! src/share/classes/javax/swing/text/View.java ! test/javax/swing/text/View/8014863/bug8014863.java Changeset: ef2f0c15b332 Author: pchelko Date: 2013-09-13 11:58 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ef2f0c15b332 8024170: [SwingNode] Implement cursor change Reviewed-by: anthony, ant ! src/macosx/classes/sun/lwawt/LWLightweightFramePeer.java ! src/share/classes/sun/swing/JLightweightFrame.java ! src/share/classes/sun/swing/LightweightContent.java ! src/share/classes/sun/swing/SwingAccessor.java ! src/solaris/classes/sun/awt/X11/XLightweightFramePeer.java ! src/windows/classes/sun/awt/windows/WComponentPeer.java ! src/windows/classes/sun/awt/windows/WLightweightFramePeer.java Changeset: 12788c245d67 Author: pchelko Date: 2013-09-13 17:25 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/12788c245d67 8015453: java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java failed on windows with jdk8 since b86 Reviewed-by: art, serb ! src/share/classes/sun/awt/datatransfer/DataTransferer.java Changeset: df107b1f2f2e Author: pchelko Date: 2013-09-13 17:38 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/df107b1f2f2e 8015371: The HTML text without tags does not appear inside the WordPad application, and we try to click the button, but the case exits. Reviewed-by: anthony, serb ! src/windows/classes/sun/awt/windows/WDataTransferer.java Changeset: 40fdf56c09a9 Author: pchelko Date: 2013-09-13 17:41 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/40fdf56c09a9 8015455: java/awt/dnd/DisposeFrameOnDragCrash/DisposeFrameOnDragTest.java hangs on windows Reviewed-by: serb, anthony ! src/share/classes/java/awt/dnd/DropTarget.java ! src/share/classes/javax/swing/TransferHandler.java Changeset: 915d13946f18 Author: mcherkas Date: 2013-09-13 17:48 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/915d13946f18 8015601: [macosx] Test javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java fails on MacOS X Reviewed-by: alexp, alexsch ! test/javax/swing/JInternalFrame/InternalFrameIsNotCollectedTest.java Changeset: ad52e924c55a Author: kshefov Date: 2013-09-13 17:54 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ad52e924c55a 8006087: [TEST_BUG] The BACKSPACE key doesn't work and after pressing 'cancel' and 'DONE' button, the case pass automatically. Reviewed-by: alexsch, serb ! test/javax/swing/JFileChooser/4150029/bug4150029.html ! test/javax/swing/JFileChooser/4150029/bug4150029.java Changeset: c8a85165b725 Author: kshefov Date: 2013-09-13 17:58 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c8a85165b725 8015597: [TEST_BUG] [macosx] Test closed/javax/swing/JMenuBar/4750590/bug4750590.java fails since JDK 8 b75 on MacOSX Reviewed-by: alexsch, serb + test/javax/swing/JMenuBar/4750590/bug4750590.java Changeset: 17cc8f13e4e7 Author: pchelko Date: 2013-09-13 18:02 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/17cc8f13e4e7 8012026: [macosx] Component.getMousePosition() does not work in an applet on MacOS Reviewed-by: anthony, serb ! make/sun/lwawt/FILES_export_macosx.gmk - src/macosx/classes/sun/lwawt/macosx/CMouseInfoPeer.java ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java ! src/macosx/native/sun/awt/AWTView.m + test/java/awt/Mouse/GetMousePositionTest/GetMousePositionWithOverlay.java + test/java/awt/Mouse/GetMousePositionTest/GetMousePositionWithPopup.java Changeset: a46d22ee4d4b Author: alexsch Date: 2013-09-16 17:45 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a46d22ee4d4b 8008728: [macosx] Swing. JDialog. Modal dialog goes to background Reviewed-by: serb ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/macosx/native/sun/awt/AWTWindow.m + test/java/awt/Modal/ModalDialogOrderingTest/ModalDialogOrderingTest.java Changeset: 8f5b4e7623cf Author: ant Date: 2013-09-16 18:00 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8f5b4e7623cf 8022512: JLightweightFrame: the content pane should be transparent Reviewed-by: anthony ! src/share/classes/sun/swing/JLightweightFrame.java Changeset: 49c7d299a504 Author: kshefov Date: 2013-09-16 19:15 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/49c7d299a504 7020060: [TEST_BUG] java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java failed Reviewed-by: anthony, serb ! test/java/awt/FullScreen/TranslucentWindow/TranslucentWindow.java Changeset: 98080e9367be Author: kshefov Date: 2013-09-16 19:21 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/98080e9367be 8015588: [TEST_BUG] [macosx] Test java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java fails on MacOSX Reviewed-by: anthony, serb ! test/java/awt/MenuBar/MenuBarSetFont/MenuBarSetFont.java Changeset: 04612a52e7bd Author: pchelko Date: 2013-09-16 19:38 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/04612a52e7bd 8024779: [macosx] SwingNode crashes on exit Reviewed-by: anthony, ant ! src/macosx/native/sun/awt/AWTView.m ! src/macosx/native/sun/awt/AWTWindow.m Changeset: 4e88bf592830 Author: pchelko Date: 2013-09-16 19:44 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4e88bf592830 8024485: For 5-1 step: if input something into the 'File:' and 'Dir:', the dir output isn't empty in the output window after showing and canceling the file dialog Reviewed-by: serb, anthony ! src/windows/classes/sun/awt/windows/WFileDialogPeer.java Changeset: 8530456e0091 Author: omajid Date: 2013-09-16 15:43 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8530456e0091 8024863: X11: Support GNOME Shell as mutter Reviewed-by: anthony ! src/solaris/classes/sun/awt/X11/XWM.java Changeset: 4899f6734a14 Author: ant Date: 2013-09-18 12:25 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4899f6734a14 8024839: [Unified Swing/Fx threading] don't schedule an event dispatching from the event dispatch thread Reviewed-by: anthony, pchelko ! src/share/classes/java/awt/EventQueue.java Changeset: cc7a15f4c735 Author: mcherkas Date: 2013-09-18 15:12 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cc7a15f4c735 8016746: Test javax/swing/JTable/7068740/bug7068740.java fails Reviewed-by: serb, alexsch ! test/javax/swing/JTable/7068740/bug7068740.java Changeset: 2c240454c192 Author: leonidr Date: 2013-09-18 18:36 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2c240454c192 7188071: closed/java/awt/TrayIcon/TrayIconSecurity/GrantedTrayIconTest fails Reviewed-by: anthony, serb ! src/solaris/classes/sun/awt/X11/XTrayIconPeer.java Changeset: 20b1135647fa Author: lana Date: 2013-09-18 16:01 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/20b1135647fa Merge ! src/share/classes/java/awt/Toolkit.java - src/share/classes/java/util/stream/CloseableStream.java - src/share/classes/java/util/stream/DelegatingStream.java ! src/share/classes/sun/swing/SwingUtilities2.java ! src/windows/native/sun/windows/awt_PrintControl.cpp - test/java/util/Collection/ListDefaults.java - test/java/util/Map/CheckRandomHashSeed.java - test/java/util/Map/TreeBinSplitBackToEntries.java - test/java/util/concurrent/ConcurrentHashMap/toArray.java - test/sun/tools/jconsole/ImmutableResourceTest.java - test/sun/tools/jconsole/ImmutableResourceTest.sh Changeset: e292d504ad68 Author: leonidr Date: 2013-09-19 22:33 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e292d504ad68 7144065: [macosx] Orphaned Choice popup window Reviewed-by: anthony, serb Contributed-by: alexander.potochkin at oracle.com ! src/macosx/classes/sun/lwawt/LWChoicePeer.java Changeset: 602e5d0141d3 Author: leonidr Date: 2013-09-19 23:46 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/602e5d0141d3 7129133: [macosx] Accelerators are displayed as Meta instead of the Command symbol Reviewed-by: anthony, serb ! makefiles/GensrcProperties.gmk + src/macosx/classes/sun/awt/resources/awtosx.properties ! src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java ! src/share/classes/java/awt/Toolkit.java ! src/share/classes/sun/awt/AWTAccessor.java + test/java/awt/Toolkit/ToolkitPropertyTest/bug7129133.java Changeset: c04e55e17066 Author: kshefov Date: 2013-09-20 17:07 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c04e55e17066 7124314: [TEST_BUG] [macosx] Aqua LAF: JTree doesn't select element by keyboards left and right keys Reviewed-by: alexsch, serb Contributed-by: vera.akulova at oracle.com + test/javax/swing/JTree/4927934/bug4927934.java Changeset: 6c1f9468f3de Author: kshefov Date: 2013-09-20 17:16 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6c1f9468f3de 8017180: [macosx] [TEST_BUG] alt-key doesn't work on macos for menu Reviewed-by: alexsch, serb Contributed-by: vera.akulova at oracle.com + test/java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java + test/javax/swing/JMenuItem/4171437/bug4171437.java + test/javax/swing/JPopupMenu/4458079/bug4458079.java Changeset: f139aef966fd Author: kshefov Date: 2013-09-20 17:35 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f139aef966fd 7124232: [TEST_BUG] [macosx] JSplitPane has wrong divider location Reviewed-by: alexsch, serb Contributed-by: vera.akulova at oracle.com + test/javax/swing/JSplitPane/4816114/bug4816114.java Changeset: abebe03818f6 Author: malenkov Date: 2013-09-20 18:56 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/abebe03818f6 7024235: Nimbus L&F: wrong "packing" of a frame containing tabbed pane Reviewed-by: alexsch ! src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java + test/javax/swing/JTabbedPane/7024235/Test7024235.java Changeset: 2ac59698de38 Author: kshefov Date: 2013-09-23 16:14 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2ac59698de38 8015600: [TEST_BUG] [macosx] Test closed/javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java fails since JDK 8 b75 on MacOSX Reviewed-by: alexsch, serb + test/javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java Changeset: eac52fe3990c Author: serb Date: 2013-09-23 16:17 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/eac52fe3990c 8005255: [macosx] Cleanup warnings in sun.lwawt Reviewed-by: alexsch, anthony ! make/sun/lwawt/FILES_export_macosx.gmk ! src/macosx/classes/sun/lwawt/LWButtonPeer.java ! src/macosx/classes/sun/lwawt/LWCanvasPeer.java ! src/macosx/classes/sun/lwawt/LWCheckboxPeer.java ! src/macosx/classes/sun/lwawt/LWChoicePeer.java ! src/macosx/classes/sun/lwawt/LWComponentPeer.java ! src/macosx/classes/sun/lwawt/LWContainerPeer.java ! src/macosx/classes/sun/lwawt/LWCursorManager.java ! src/macosx/classes/sun/lwawt/LWLabelPeer.java ! src/macosx/classes/sun/lwawt/LWListPeer.java ! src/macosx/classes/sun/lwawt/LWMouseInfoPeer.java ! src/macosx/classes/sun/lwawt/LWPanelPeer.java ! src/macosx/classes/sun/lwawt/LWRepaintArea.java ! src/macosx/classes/sun/lwawt/LWScrollBarPeer.java ! src/macosx/classes/sun/lwawt/LWScrollPanePeer.java ! src/macosx/classes/sun/lwawt/LWTextAreaPeer.java ! src/macosx/classes/sun/lwawt/LWTextComponentPeer.java ! src/macosx/classes/sun/lwawt/LWTextFieldPeer.java ! src/macosx/classes/sun/lwawt/LWToolkit.java ! src/macosx/classes/sun/lwawt/LWWindowPeer.java - src/macosx/classes/sun/lwawt/SelectionClearListener.java Changeset: 2684fd4e9f3b Author: serb Date: 2013-09-23 17:55 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2684fd4e9f3b 7172833: For default java.awt.Toolkit impl methods java.awt.Toolkit.is/setDynamicLayout() are not consistent Reviewed-by: alexsch, anthony ! src/share/classes/java/awt/Toolkit.java + test/java/awt/Toolkit/DynamicLayout/bug7172833.java Changeset: d73d3a29065c Author: serb Date: 2013-09-23 21:24 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d73d3a29065c 8019282: keyRelesed is reached even though key was NOT released Reviewed-by: serb, anthony Contributed-by: alexander.zvegintsev at oracle.com ! make/sun/xawt/mapfile-vers ! makefiles/mapfiles/libawt_xawt/mapfile-vers ! src/solaris/classes/sun/awt/X11/XToolkit.java ! src/solaris/classes/sun/awt/X11/XlibWrapper.java ! src/solaris/native/sun/xawt/XlibWrapper.c Changeset: 8c0b943a0090 Author: yan Date: 2013-09-24 12:25 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8c0b943a0090 8025114: Eliminate doclint errors in java.awt.dnd package javadoc Reviewed-by: serb, alexsch ! src/share/classes/java/awt/dnd/DragGestureRecognizer.java ! src/share/classes/java/awt/dnd/DragSource.java ! src/share/classes/java/awt/dnd/DragSourceContext.java ! src/share/classes/java/awt/dnd/DragSourceDragEvent.java ! src/share/classes/java/awt/dnd/DragSourceDropEvent.java ! src/share/classes/java/awt/dnd/DragSourceEvent.java ! src/share/classes/java/awt/dnd/DropTarget.java ! src/share/classes/java/awt/dnd/DropTargetDragEvent.java ! src/share/classes/java/awt/dnd/DropTargetDropEvent.java Changeset: 1303823e89da Author: yan Date: 2013-09-24 16:36 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1303823e89da 8025230: [cleanup] some more javadoc formatting fixes for swing Reviewed-by: alexsch ! src/share/classes/javax/swing/JPanel.java ! src/share/classes/javax/swing/JPasswordField.java ! src/share/classes/javax/swing/JPopupMenu.java ! src/share/classes/javax/swing/JRadioButton.java ! src/share/classes/javax/swing/JRadioButtonMenuItem.java ! src/share/classes/javax/swing/JRootPane.java ! src/share/classes/javax/swing/JScrollPane.java ! src/share/classes/javax/swing/JSeparator.java ! src/share/classes/javax/swing/JSlider.java ! src/share/classes/javax/swing/JSpinner.java ! src/share/classes/javax/swing/JSplitPane.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/JTextArea.java ! src/share/classes/javax/swing/JTextField.java ! src/share/classes/javax/swing/JToolBar.java ! src/share/classes/javax/swing/JToolTip.java ! src/share/classes/javax/swing/JTree.java ! src/share/classes/javax/swing/JViewport.java ! src/share/classes/javax/swing/KeyStroke.java ! src/share/classes/javax/swing/OverlayLayout.java ! src/share/classes/javax/swing/ProgressMonitor.java ! src/share/classes/javax/swing/SizeRequirements.java ! src/share/classes/javax/swing/SizeSequence.java Changeset: d580e0bc85d9 Author: yan Date: 2013-09-24 17:04 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d580e0bc85d9 8025117: [cleanup] Eliminate doclint errors in javax/swing/text classes Reviewed-by: alexsch ! src/share/classes/javax/swing/JLayer.java ! src/share/classes/javax/swing/RowFilter.java ! src/share/classes/javax/swing/plaf/TextUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/share/classes/javax/swing/text/AttributeSet.java ! src/share/classes/javax/swing/text/BadLocationException.java ! src/share/classes/javax/swing/text/BoxView.java ! src/share/classes/javax/swing/text/Caret.java ! src/share/classes/javax/swing/text/ComponentView.java ! src/share/classes/javax/swing/text/CompositeView.java ! src/share/classes/javax/swing/text/DefaultEditorKit.java ! src/share/classes/javax/swing/text/DefaultHighlighter.java ! src/share/classes/javax/swing/text/DefaultStyledDocument.java ! src/share/classes/javax/swing/text/Document.java ! src/share/classes/javax/swing/text/DocumentFilter.java ! src/share/classes/javax/swing/text/EditorKit.java ! src/share/classes/javax/swing/text/FieldView.java ! src/share/classes/javax/swing/text/FlowView.java ! src/share/classes/javax/swing/text/GapContent.java ! src/share/classes/javax/swing/text/GlyphView.java ! src/share/classes/javax/swing/text/Highlighter.java ! src/share/classes/javax/swing/text/IconView.java ! src/share/classes/javax/swing/text/NavigationFilter.java ! src/share/classes/javax/swing/text/ParagraphView.java ! src/share/classes/javax/swing/text/PasswordView.java ! src/share/classes/javax/swing/text/PlainDocument.java ! src/share/classes/javax/swing/text/PlainView.java ! src/share/classes/javax/swing/text/Position.java ! src/share/classes/javax/swing/text/StringContent.java ! src/share/classes/javax/swing/text/StyleContext.java ! src/share/classes/javax/swing/text/StyledDocument.java ! src/share/classes/javax/swing/text/StyledEditorKit.java ! src/share/classes/javax/swing/text/TabExpander.java ! src/share/classes/javax/swing/text/TabableView.java ! src/share/classes/javax/swing/text/TableView.java ! src/share/classes/javax/swing/text/Utilities.java ! src/share/classes/javax/swing/text/View.java ! src/share/classes/javax/swing/text/WrappedPlainView.java ! src/share/classes/javax/swing/text/ZoneView.java ! src/share/classes/javax/swing/text/html/BlockView.java ! src/share/classes/javax/swing/text/html/CSS.java ! src/share/classes/javax/swing/text/html/FormView.java ! src/share/classes/javax/swing/text/html/HTMLDocument.java Changeset: 58178aec7e81 Author: kshefov Date: 2013-09-24 17:46 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/58178aec7e81 7124320: [TEST_BUG] [macosx] JComboBox doesn't change selection on mouse over Reviewed-by: alexsch, serb Contributed-by: vera.akulova at oracle.com + test/javax/swing/JComboBox/6236162/bug6236162.java Changeset: f500844c2253 Author: kshefov Date: 2013-09-24 17:56 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f500844c2253 7133154: [TEST_BUG] [macosx] closed/javax/swing/JInternalFrame/4251301/bug4251301.java fails on MacOS Reviewed-by: alexsch, serb Contributed-by: vera.akulova at oracle.com + test/javax/swing/JInternalFrame/4251301/bug4251301.java Changeset: 967557d5b90a Author: kshefov Date: 2013-09-24 18:13 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/967557d5b90a 7133146: [macosx] closed/javax/swing/JInternalFrame/4193219/IconCoord fails on MacOS Reviewed-by: alexsch, serb Contributed-by: vera.akulova at oracle.com + test/javax/swing/JInternalFrame/4193219/IconCoord.java Changeset: 3982dd1210ba Author: kshefov Date: 2013-09-24 18:20 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3982dd1210ba 8015599: [TEST_BUG] [macosx] Test closed/javax/swing/Popup/TaskbarPositionTest.java fails since JDK 8 b75 on MacOSX Reviewed-by: alexsch, serb + test/javax/swing/Popup/TaskbarPositionTest.java Changeset: 2ed1584d62c5 Author: leonidr Date: 2013-09-24 18:24 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2ed1584d62c5 8022555: [macosx] AppleScriptEngine.jar MUST call java.awt.Toolkit.getDefaultToolkit() lazily Reviewed-by: anthony, serb ! src/macosx/classes/apple/applescript/AppleScriptEngineFactory.java Changeset: a284da808700 Author: malenkov Date: 2013-09-25 14:06 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a284da808700 8023310: Thread contention in the method Beans.IsDesignTime() Reviewed-by: art, sfriberg ! src/share/classes/java/beans/ThreadGroupContext.java ! src/share/classes/java/beans/WeakIdentityMap.java Changeset: 10e66428ddb0 Author: alexsch Date: 2013-09-25 16:17 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/10e66428ddb0 8007155: [macosx] Disabled panel takes mouse input in JLayeredPane Reviewed-by: serb, anthony ! src/macosx/classes/sun/lwawt/LWCursorManager.java ! src/share/classes/java/awt/Container.java ! src/share/classes/sun/awt/AWTAccessor.java ! src/share/classes/sun/awt/GlobalCursorManager.java ! src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java ! src/windows/classes/sun/awt/windows/WGlobalCursorManager.java ! src/windows/native/sun/windows/awt_Container.cpp ! src/windows/native/sun/windows/awt_Container.h ! src/windows/native/sun/windows/awt_Cursor.cpp + test/java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.html + test/java/awt/Cursor/CursorOverlappedPanelsTest/CursorOverlappedPanelsTest.java Changeset: 7cad8ef127a9 Author: pchelko Date: 2013-09-25 16:12 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7cad8ef127a9 8024987: Copy/paste regression since JDK8 b86 Reviewed-by: serb, anthony ! src/share/classes/java/awt/datatransfer/SystemFlavorMap.java Changeset: cff4f079fa3f Author: kshefov Date: 2013-09-25 16:52 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cff4f079fa3f 8004032: [TEST_BUG] [macosx] There is no effect when double clicking on the Icon, after right clicking on the Icon and the Icon disappear Reviewed-by: anthony, serb + test/java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.html + test/java/awt/TrayIcon/ShowAfterDisposeTest/ShowAfterDisposeTest.java Changeset: 681ac9f9c452 Author: alexsch Date: 2013-09-25 17:08 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/681ac9f9c452 8025070: [javadoc] fix some javadoc errors in javax/swing/plaf/synth Reviewed-by: serb, alexsch Contributed-by: Alexander Stepanov ! src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java ! src/share/classes/javax/swing/plaf/synth/SynthCheckBoxMenuItemUI.java ! src/share/classes/javax/swing/plaf/synth/SynthCheckBoxUI.java ! src/share/classes/javax/swing/plaf/synth/SynthColorChooserUI.java ! src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java ! src/share/classes/javax/swing/plaf/synth/SynthDesktopIconUI.java ! src/share/classes/javax/swing/plaf/synth/SynthDesktopPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthFormattedTextFieldUI.java ! src/share/classes/javax/swing/plaf/synth/SynthInternalFrameUI.java ! src/share/classes/javax/swing/plaf/synth/SynthLabelUI.java ! src/share/classes/javax/swing/plaf/synth/SynthListUI.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuItemUI.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuLayout.java ! src/share/classes/javax/swing/plaf/synth/SynthMenuUI.java ! src/share/classes/javax/swing/plaf/synth/SynthOptionPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthPainter.java ! src/share/classes/javax/swing/plaf/synth/SynthPanelUI.java ! src/share/classes/javax/swing/plaf/synth/SynthPasswordFieldUI.java ! src/share/classes/javax/swing/plaf/synth/SynthPopupMenuUI.java ! src/share/classes/javax/swing/plaf/synth/SynthProgressBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthRadioButtonMenuItemUI.java ! src/share/classes/javax/swing/plaf/synth/SynthRadioButtonUI.java ! src/share/classes/javax/swing/plaf/synth/SynthRootPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthScrollBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthScrollPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSeparatorUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSliderUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSpinnerUI.java ! src/share/classes/javax/swing/plaf/synth/SynthSplitPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTableHeaderUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTableUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java ! src/share/classes/javax/swing/plaf/synth/SynthToggleButtonUI.java ! src/share/classes/javax/swing/plaf/synth/SynthToolBarUI.java ! src/share/classes/javax/swing/plaf/synth/SynthToolTipUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java ! src/share/classes/javax/swing/plaf/synth/SynthViewportUI.java Changeset: 2f8803ebd98c Author: yan Date: 2013-09-25 17:35 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2f8803ebd98c 8025085: [javadoc] some errors in javax/swing Reviewed-by: alexsch Contributed-by: Dmitry Zinkevich ! src/share/classes/javax/swing/JButton.java ! src/share/classes/javax/swing/JCheckBox.java ! src/share/classes/javax/swing/JCheckBoxMenuItem.java ! src/share/classes/javax/swing/JColorChooser.java ! src/share/classes/javax/swing/JComboBox.java ! src/share/classes/javax/swing/JComponent.java ! src/share/classes/javax/swing/JDesktopPane.java ! src/share/classes/javax/swing/JMenuItem.java ! src/share/classes/javax/swing/JToggleButton.java ! src/share/classes/javax/swing/SpinnerDateModel.java ! src/share/classes/javax/swing/SpinnerListModel.java ! src/share/classes/javax/swing/SpinnerNumberModel.java ! src/share/classes/javax/swing/SpringLayout.java ! src/share/classes/javax/swing/TransferHandler.java ! src/share/classes/javax/swing/UIDefaults.java ! src/share/classes/javax/swing/UnsupportedLookAndFeelException.java ! src/share/classes/javax/swing/ViewportLayout.java ! src/share/classes/javax/swing/plaf/LayerUI.java ! src/share/classes/javax/swing/plaf/basic/BasicBorders.java ! src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java ! src/share/classes/javax/swing/plaf/basic/BasicDesktopPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicFileChooserUI.java ! src/share/classes/javax/swing/plaf/basic/BasicGraphicsUtils.java ! src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java ! src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java ! src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java ! src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java ! src/share/classes/javax/swing/plaf/basic/BasicListUI.java ! src/share/classes/javax/swing/plaf/basic/BasicMenuBarUI.java ! src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java ! src/share/classes/javax/swing/plaf/basic/BasicOptionPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicPopupMenuSeparatorUI.java ! src/share/classes/javax/swing/plaf/basic/BasicPopupMenuUI.java ! src/share/classes/javax/swing/plaf/basic/BasicProgressBarUI.java ! src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicSeparatorUI.java ! src/share/classes/javax/swing/plaf/basic/BasicSliderUI.java ! src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicToolBarSeparatorUI.java ! src/share/classes/javax/swing/plaf/basic/BasicToolBarUI.java ! src/share/classes/javax/swing/plaf/basic/BasicToolTipUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java ! src/share/classes/javax/swing/plaf/basic/DefaultMenuLayout.java ! src/share/classes/javax/swing/plaf/metal/MetalBorders.java ! src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java ! src/share/classes/javax/swing/plaf/metal/MetalLabelUI.java ! src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java ! src/share/classes/javax/swing/plaf/metal/MetalPopupMenuSeparatorUI.java ! src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java ! src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java ! src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java ! src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java ! src/share/classes/javax/swing/plaf/nimbus/NimbusLookAndFeel.java ! src/share/classes/javax/swing/plaf/nimbus/NimbusStyle.java ! src/share/classes/javax/swing/plaf/synth/Region.java ! src/share/classes/javax/swing/text/html/HTMLEditorKit.java ! src/share/classes/javax/swing/text/html/ImageView.java ! src/share/classes/javax/swing/text/html/InlineView.java ! src/share/classes/javax/swing/text/html/StyleSheet.java ! src/share/classes/javax/swing/text/html/parser/ContentModel.java ! src/share/classes/javax/swing/text/html/parser/DocumentParser.java ! src/share/classes/javax/swing/text/html/parser/Parser.java ! src/share/classes/javax/swing/tree/AbstractLayoutCache.java ! src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java ! src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java ! src/share/classes/javax/swing/tree/DefaultTreeModel.java ! src/share/classes/javax/swing/tree/TreeCellRenderer.java ! src/share/classes/javax/swing/tree/TreeModel.java ! src/share/classes/javax/swing/undo/UndoManager.java Changeset: c40ed21f2939 Author: alexsch Date: 2013-09-25 17:42 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c40ed21f2939 7083457: Incomplete specification for javax/swing/text/DefaultCaret.html#setVisible(boolean) Reviewed-by: malenkov, serb ! src/share/classes/javax/swing/text/DefaultCaret.java + test/javax/swing/text/DefaultCaret/7083457/bug7083457.java Changeset: 09fb25645717 Author: ptbrunet Date: 2013-09-26 10:48 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/09fb25645717 8025160: Recent Java Accessibility Bridge push has make failures Reviewed-by: tbell, erikj ! make/bridge/AccessBridgeJava/Makefile ! makefiles/CreateJars.gmk ! makefiles/GensrcMisc.gmk Changeset: 0270e9b0891b Author: yan Date: 2013-09-26 16:10 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0270e9b0891b 8025218: [javadoc] some errors in java/awt classes Reviewed-by: yan Contributed-by: Dmitry Zinkevich ! src/share/classes/java/awt/AWTKeyStroke.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/DefaultKeyboardFocusManager.java ! src/share/classes/java/awt/Dialog.java ! src/share/classes/java/awt/Event.java ! src/share/classes/java/awt/Frame.java ! src/share/classes/java/awt/GridBagConstraints.java ! src/share/classes/java/awt/GridBagLayout.java ! src/share/classes/java/awt/GridLayout.java ! src/share/classes/java/awt/KeyboardFocusManager.java ! src/share/classes/java/awt/MenuBar.java ! src/share/classes/java/awt/ScrollPane.java ! src/share/classes/java/awt/ScrollPaneAdjustable.java ! src/share/classes/java/awt/SystemTray.java ! src/share/classes/java/awt/TextComponent.java ! src/share/classes/java/awt/TextField.java ! src/share/classes/java/awt/Window.java ! src/share/classes/java/awt/datatransfer/DataFlavor.java ! src/share/classes/java/awt/event/MouseMotionListener.java Changeset: 3b22833f2695 Author: lana Date: 2013-09-26 17:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3b22833f2695 Merge - src/macosx/classes/sun/lwawt/SelectionClearListener.java - src/macosx/classes/sun/lwawt/macosx/CMouseInfoPeer.java Changeset: 8708569b5524 Author: sjiang Date: 2013-09-18 08:51 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8708569b5524 8023954: MBean*Info.equals: throw NPE Reviewed-by: dfuchs, dholmes ! src/share/classes/javax/management/MBeanAttributeInfo.java ! src/share/classes/javax/management/MBeanConstructorInfo.java ! src/share/classes/javax/management/MBeanFeatureInfo.java ! src/share/classes/javax/management/MBeanNotificationInfo.java ! src/share/classes/javax/management/MBeanOperationInfo.java ! src/share/classes/javax/management/MBeanParameterInfo.java + test/javax/management/MBeanInfo/MBeanInfoEqualsNPETest.java Changeset: ee8b292ee568 Author: weijun Date: 2013-09-18 18:22 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ee8b292ee568 8012615: Realm.getRealmsList returns realms list in wrong Reviewed-by: valeriep, xuelei ! src/share/classes/sun/security/krb5/Config.java ! src/share/classes/sun/security/krb5/Realm.java ! src/share/classes/sun/security/krb5/internal/CredentialsUtil.java ! test/sun/security/krb5/ParseCAPaths.java ! test/sun/security/krb5/krb5-capaths.conf Changeset: e92635d6834c Author: alanb Date: 2013-09-18 14:10 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e92635d6834c 8024883: (se) SelectableChannel.register throws NPE if fd >= 64k (lnx) Reviewed-by: alanb, coffeys Contributed-by: nmaurer at redhat.com, alan.bateman at oracle.com ! src/solaris/classes/sun/nio/ch/DevPollArrayWrapper.java ! src/solaris/classes/sun/nio/ch/EPollArrayWrapper.java ! src/solaris/classes/sun/nio/ch/EventPortWrapper.java ! test/java/nio/channels/Selector/LotsOfChannels.java ! test/java/nio/channels/Selector/SelectorLimit.java Changeset: 07d73060e0da Author: weijun Date: 2013-09-18 21:37 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/07d73060e0da 8011402: Move blacklisting certificate logic from hard code to data Reviewed-by: erikj, mullan ! make/java/security/Makefile ! makefiles/CopyFiles.gmk ! src/share/classes/java/security/cert/Certificate.java ! src/share/classes/sun/security/util/UntrustedCertificates.java ! src/share/classes/sun/security/x509/X509CertImpl.java + src/share/lib/security/BlacklistedCertsConverter.java + src/share/lib/security/blacklisted.certs + src/share/lib/security/blacklisted.certs.pem + test/lib/security/CheckBlacklistedCerts.java Changeset: b3a506a30fda Author: ewang Date: 2013-09-18 15:13 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b3a506a30fda 8015762: TEST_BUG: java/nio/channels/DatagramChannel/AdaptDatagramSocket.java failing intermittently [win] Reviewed-by: chegar, alanb ! test/java/nio/channels/DatagramChannel/AdaptDatagramSocket.java Changeset: 22e9f0067b5a Author: kizune Date: 2013-09-19 17:04 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/22e9f0067b5a 8017248: Compiler Diacritics Issue Reviewed-by: naoto ! src/share/classes/sun/launcher/LauncherHelper.java + test/tools/launcher/8017248/ClassA??.java + test/tools/launcher/8017248/test.sh Changeset: 7557062d2dd2 Author: plevart Date: 2013-09-19 16:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7557062d2dd2 8011940: java.lang.Class.getAnnotations() always enters synchronized method Reviewed-by: jfranck, chegar, psandoz, shade ! src/share/classes/java/lang/Class.java + test/java/lang/annotation/AnnotationsInheritanceOrderRedefinitionTest.java Changeset: 278873b2b3f8 Author: sherman Date: 2013-09-19 10:06 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/278873b2b3f8 8023113: tools/jar/ChangeDir.java fails if /tmp/a exists Summary: updated the test case Reviewed-by: alanb ! test/tools/jar/ChangeDir.java Changeset: f36714707c38 Author: psandoz Date: 2013-09-18 10:49 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f36714707c38 8025002: "".codePoints().sorted().iterator().hasNext() causes NegativeArraySizeException Reviewed-by: henryjen, alanb ! src/share/classes/java/lang/CharSequence.java ! test/java/lang/CharSequence/DefaultTest.java Changeset: 0ef7ddef9de0 Author: psandoz Date: 2013-09-19 20:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0ef7ddef9de0 8024405: Spliterators.spliterator should support CONCURRENT characteristic Reviewed-by: martin ! src/share/classes/java/util/Spliterator.java ! src/share/classes/java/util/Spliterators.java ! test/java/util/Spliterator/SpliteratorCharacteristics.java ! test/java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java Changeset: 58fd427b454d Author: sla Date: 2013-09-20 10:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/58fd427b454d 8024985: com/sun/jdi/StepTest.java failed since jdk8b107 Reviewed-by: dcubed ! test/com/sun/jdi/ExceptionEvents.java ! test/com/sun/jdi/FilterNoMatch.java ! test/com/sun/jdi/JDIScaffold.java ! test/com/sun/jdi/PopAndStepTest.java ! test/com/sun/jdi/RepStep.java ! test/com/sun/jdi/TestScaffold.java Changeset: 6a1c70e191d4 Author: sla Date: 2013-09-20 10:15 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6a1c70e191d4 8024416: TESTBUG: com/sun/jdi/MethodEntryExitEvents.java: method entry count mismatch Reviewed-by: dcubed ! test/com/sun/jdi/MethodEntryExitEvents.java Changeset: afe857b13b62 Author: kizune Date: 2013-09-20 17:56 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/afe857b13b62 8025076: Fix for JDK-8017248 breaks jprt submission for non-unicode locales Reviewed-by: naoto, ksrini - test/tools/launcher/8017248/ClassA??.java - test/tools/launcher/8017248/test.sh + test/tools/launcher/DiacriticTest.java Changeset: 94cc251d0c45 Author: sla Date: 2013-09-20 16:40 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/94cc251d0c45 7200277: [parfait] potential buffer overflow in npt/utf.c Reviewed-by: dsamersoff, dcubed ! src/share/npt/utf.c Changeset: 7913855ff66c Author: psandoz Date: 2013-09-20 11:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7913855ff66c 8024253: ThreadLocal random can use SecureRandom for the initial seed Reviewed-by: psandoz, chegar, alanb Contributed-by: Doug Lea
, Peter Levart , Guy Steele ! src/share/classes/java/util/SplittableRandom.java ! src/share/classes/java/util/concurrent/ThreadLocalRandom.java ! test/java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java Changeset: 2552cd270350 Author: bpb Date: 2013-09-20 15:12 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2552cd270350 8024331: j.u.Map.computeIfPresent() default/nondefault implementations don't throw NPE if the remappingFunction is null and the key is absent Summary: Explicitly check for null remappingFunction parameter. Reviewed-by: mduigou, forax, psandoz Contributed-by: Brian Burkhalter ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/Map.java ! test/java/util/Map/Defaults.java Changeset: c30dc8e7744e Author: psandoz Date: 2013-09-20 17:11 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c30dc8e7744e 8024341: j.u.regex.Pattern.splitAsStream() doesn't correspond to split() method if using an example from the spec Reviewed-by: alanb ! src/share/classes/java/util/regex/Pattern.java + test/java/util/regex/PatternStreamTest.java - test/java/util/regex/PatternTest.java Changeset: 56d247821694 Author: alanb Date: 2013-09-23 04:05 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/56d247821694 8023130: (process) ProcessBuilder#inheritIO does not work on Windows Reviewed-by: alanb, martin Contributed-by: ivan.gerasimov at oracle.com ! src/windows/native/java/lang/ProcessImpl_md.c ! test/java/lang/ProcessBuilder/Basic.java + test/java/lang/ProcessBuilder/InheritIO/InheritIO.java + test/java/lang/ProcessBuilder/InheritIO/InheritIO.sh Changeset: a3b17b91127d Author: lana Date: 2013-09-20 19:15 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a3b17b91127d Merge Changeset: f1b251affc6a Author: lana Date: 2013-09-22 20:21 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f1b251affc6a Merge Changeset: b606775fd1a3 Author: stefank Date: 2013-08-29 11:08 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b606775fd1a3 8014659: NPG: performance counters for compressed klass space Reviewed-by: jmasa, sla Contributed-by: erik.helin at oracle.com ! src/share/classes/sun/tools/jstat/resources/jstat_options ! test/sun/tools/jstat/gcCapacityOutput1.awk ! test/sun/tools/jstat/gcCauseOutput1.awk ! test/sun/tools/jstat/gcMetaCapacityOutput1.awk ! test/sun/tools/jstat/gcOldOutput1.awk ! test/sun/tools/jstat/gcOutput1.awk ! test/sun/tools/jstat/lineCounts1.awk ! test/sun/tools/jstat/lineCounts2.awk ! test/sun/tools/jstat/lineCounts3.awk ! test/sun/tools/jstat/lineCounts4.awk ! test/sun/tools/jstat/timeStamp1.awk ! test/sun/tools/jstatd/jstatGcutilOutput1.awk Changeset: 76619d71a7c5 Author: dfuchs Date: 2013-09-25 09:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/76619d71a7c5 8025140: TEST_BUG: java/util/logging/Logger/getGlobal tests fail due to timeout Summary: Arbitrary timeouts in the tests @run lines where too agressive for some configurations. The tests will now run with default timeout. Reviewed-by: alanb, mchung ! test/java/util/logging/Logger/getGlobal/TestGetGlobal.java ! test/java/util/logging/Logger/getGlobal/TestGetGlobalByName.java ! test/java/util/logging/Logger/getGlobal/TestGetGlobalConcurrent.java Changeset: 2b928330970a Author: mfang Date: 2013-09-24 14:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2b928330970a 8025215: jdk8 l10n resource file translation update 4 Reviewed-by: naoto, yhuang ! src/macosx/classes/com/apple/laf/resources/aqua_ko.properties ! src/share/classes/com/sun/accessibility/internal/resources/accessibility_de.properties ! src/share/classes/com/sun/accessibility/internal/resources/accessibility_es.properties ! src/share/classes/com/sun/accessibility/internal/resources/accessibility_fr.properties ! src/share/classes/com/sun/accessibility/internal/resources/accessibility_it.properties ! src/share/classes/com/sun/accessibility/internal/resources/accessibility_pt_BR.properties ! src/share/classes/com/sun/accessibility/internal/resources/accessibility_sv.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_de.properties ! src/share/classes/com/sun/java/swing/plaf/motif/resources/motif_ko.properties + src/share/classes/com/sun/java/util/jar/pack/DriverResource_ja.java + src/share/classes/com/sun/java/util/jar/pack/DriverResource_zh_CN.java ! src/share/classes/com/sun/rowset/RowSetResourceBundle_ko.properties ! src/share/classes/com/sun/swing/internal/plaf/basic/resources/basic_ko.properties ! src/share/classes/com/sun/swing/internal/plaf/metal/resources/metal_sv.properties ! src/share/classes/sun/applet/resources/MsgAppletViewer_de.java ! src/share/classes/sun/launcher/resources/launcher_de.properties ! src/share/classes/sun/launcher/resources/launcher_es.properties ! src/share/classes/sun/launcher/resources/launcher_fr.properties ! src/share/classes/sun/launcher/resources/launcher_it.properties ! src/share/classes/sun/launcher/resources/launcher_ja.properties ! src/share/classes/sun/launcher/resources/launcher_ko.properties ! src/share/classes/sun/launcher/resources/launcher_pt_BR.properties ! src/share/classes/sun/launcher/resources/launcher_sv.properties ! src/share/classes/sun/launcher/resources/launcher_zh_CN.properties ! src/share/classes/sun/launcher/resources/launcher_zh_TW.properties ! src/share/classes/sun/print/resources/serviceui_de.properties ! src/share/classes/sun/print/resources/serviceui_es.properties ! src/share/classes/sun/print/resources/serviceui_fr.properties ! src/share/classes/sun/print/resources/serviceui_it.properties ! src/share/classes/sun/print/resources/serviceui_pt_BR.properties ! src/share/classes/sun/print/resources/serviceui_sv.properties ! src/share/classes/sun/rmi/registry/resources/rmiregistry_de.properties ! src/share/classes/sun/rmi/server/resources/rmid_ko.properties ! src/share/classes/sun/security/tools/jarsigner/Resources_ja.java ! src/share/classes/sun/security/tools/jarsigner/Resources_zh_CN.java ! src/share/classes/sun/security/tools/keytool/Resources_de.java ! src/share/classes/sun/security/tools/keytool/Resources_es.java ! src/share/classes/sun/security/tools/keytool/Resources_fr.java ! src/share/classes/sun/security/tools/keytool/Resources_it.java ! src/share/classes/sun/security/tools/keytool/Resources_ja.java ! src/share/classes/sun/security/tools/keytool/Resources_ko.java ! src/share/classes/sun/security/tools/keytool/Resources_pt_BR.java ! src/share/classes/sun/security/tools/keytool/Resources_sv.java ! src/share/classes/sun/security/tools/keytool/Resources_zh_CN.java ! src/share/classes/sun/security/tools/keytool/Resources_zh_TW.java ! src/share/classes/sun/security/tools/policytool/Resources_de.java ! src/share/classes/sun/security/tools/policytool/Resources_es.java ! src/share/classes/sun/security/tools/policytool/Resources_fr.java ! src/share/classes/sun/security/tools/policytool/Resources_it.java ! src/share/classes/sun/security/tools/policytool/Resources_ja.java ! src/share/classes/sun/security/tools/policytool/Resources_ko.java ! src/share/classes/sun/security/tools/policytool/Resources_pt_BR.java ! src/share/classes/sun/security/tools/policytool/Resources_sv.java ! src/share/classes/sun/security/tools/policytool/Resources_zh_CN.java ! src/share/classes/sun/security/tools/policytool/Resources_zh_TW.java ! src/share/classes/sun/security/util/Resources_fr.java ! src/share/classes/sun/tools/jar/resources/jar_de.properties ! src/share/classes/sun/tools/jar/resources/jar_es.properties ! src/share/classes/sun/tools/jar/resources/jar_fr.properties ! src/share/classes/sun/tools/jar/resources/jar_it.properties ! src/share/classes/sun/tools/jar/resources/jar_ja.properties ! src/share/classes/sun/tools/jar/resources/jar_ko.properties ! src/share/classes/sun/tools/jar/resources/jar_pt_BR.properties ! src/share/classes/sun/tools/jar/resources/jar_sv.properties ! src/share/classes/sun/tools/jar/resources/jar_zh_CN.properties ! src/share/classes/sun/tools/jar/resources/jar_zh_TW.properties ! src/share/classes/sun/tools/jconsole/resources/messages_ja.properties ! src/share/classes/sun/tools/jconsole/resources/messages_zh_CN.properties Changeset: 9765801f209f Author: mfang Date: 2013-09-24 14:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9765801f209f Merge - test/java/util/regex/PatternTest.java Changeset: d16a53d1762f Author: mfang Date: 2013-09-25 07:36 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d16a53d1762f Merge Changeset: 8f27030686a6 Author: bchristi Date: 2013-09-26 11:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8f27030686a6 8025173: HashMap.put() replacing an existing key can trigger a resize() Summary: Ensure that HashMap is not resized if we're just replacing a value Reviewed-by: alanb, martin ! src/share/classes/java/util/HashMap.java + test/java/util/HashMap/ReplaceExisting.java Changeset: 8edd604bf960 Author: lana Date: 2013-09-26 17:21 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8edd604bf960 Merge - test/java/util/regex/PatternTest.java Changeset: 9684ed81cd21 Author: ksrini Date: 2013-09-27 16:29 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9684ed81cd21 8020552: [launcher] changes to support removal of Solaris 32-bit distribution 8023495: [infra] create 64-bit solaris bits with symlinks Reviewed-by: ihse, tbell, dholmes, darcy, alanb, erikj, sla, martin ! makefiles/Images.gmk ! src/share/classes/com/sun/tools/jdi/SunCommandLineLauncher.java ! src/solaris/bin/java_md_solinux.c ! test/com/sun/jdi/BadHandshakeTest.java ! test/com/sun/jdi/DoubleAgentTest.java ! test/com/sun/jdi/ExclusiveBind.java ! test/com/sun/jdi/PrivateTransportTest.sh ! test/com/sun/jdi/RunToExit.java - test/com/sun/jdi/Solaris32AndSolaris64Test.sh ! test/com/sun/jdi/connect/spi/SimpleLaunchingConnector.java ! test/demo/jvmti/DemoRun.java ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/Makefile + test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-amd64/libLauncher.so - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so ! test/java/nio/channels/spi/SelectorProvider/inheritedChannel/run_tests.sh ! test/sun/security/tools/keytool/autotest.sh ! test/sun/tools/jhat/HatRun.java ! test/tools/launcher/6842838/Test6842838.sh ! test/tools/launcher/ChangeDataModel.java ! test/tools/launcher/ExecutionEnvironment.java ! test/tools/launcher/FXLauncherTest.java ! test/tools/launcher/RunpathTest.java ! test/tools/launcher/Test7029048.java ! test/tools/launcher/TestHelper.java Changeset: 2c7c7b813eb3 Author: katleman Date: 2013-10-01 12:45 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2c7c7b813eb3 Merge - test/com/sun/jdi/Solaris32AndSolaris64Test.sh - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so Changeset: dd43ccb3bac9 Author: ihse Date: 2013-10-01 11:08 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/dd43ccb3bac9 8019219: Fix typo in jdk/makefiles "default" targets Reviewed-by: erikj ! makefiles/CompileLaunchers.gmk ! makefiles/CompileNativeLibraries.gmk Changeset: 54e099776f08 Author: erikj Date: 2013-10-02 15:08 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/54e099776f08 Merge Changeset: 9f57d2774603 Author: katleman Date: 2013-10-02 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9f57d2774603 Added tag jdk8-b110 for changeset 54e099776f08 ! .hgtags Changeset: 88597d465e48 Author: ihse Date: 2013-10-01 15:13 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/88597d465e48 8016024: Remove solaris path from FillCacheFind Reviewed-by: erikj ! makefiles/Tools.gmk Changeset: 760af86b3f3f Author: erikj Date: 2013-10-03 11:27 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/760af86b3f3f 8024522: java.time packages missing from src.zip Reviewed-by: tbell ! makefiles/CreateJars.gmk Changeset: 719befd87c7b Author: katleman Date: 2013-10-08 13:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/719befd87c7b Merge Changeset: 2df7c1b98200 Author: henryjen Date: 2013-10-11 15:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2df7c1b98200 Merge ! .hgtags - .jcheck/conf ! makefiles/CompileNativeLibraries.gmk ! makefiles/CreateJars.gmk ! src/share/classes/java/lang/CharSequence.java ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/Map.java ! src/share/classes/java/util/Spliterator.java ! src/share/classes/java/util/Spliterators.java ! src/share/classes/java/util/SplittableRandom.java ! src/share/classes/java/util/concurrent/ThreadLocalRandom.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/sun/awt/datatransfer/DataTransferer.java ! test/java/lang/CharSequence/DefaultTest.java ! test/java/util/Map/Defaults.java ! test/java/util/Spliterator/SpliteratorCharacteristics.java ! test/java/util/Spliterator/SpliteratorTraversingAndSplittingTest.java ! test/java/util/concurrent/ThreadLocalRandom/ThreadLocalRandomTest.java ! test/java/util/regex/PatternStreamTest.java From henry.jen at oracle.com Fri Oct 11 18:56:13 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Sat, 12 Oct 2013 01:56:13 +0000 Subject: hg: lambda/lambda/langtools: 38 new changesets Message-ID: <20131012015820.6502B62FC6@hg.openjdk.java.net> Changeset: 6f11dc295641 Author: cl Date: 2013-09-26 10:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/6f11dc295641 Added tag jdk8-b109 for changeset 985abf1cd327 ! .hgtags Changeset: fdfbc5f0c4ed Author: jjg Date: 2013-09-17 14:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/fdfbc5f0c4ed 8024538: -Xdoclint + -Xprefer:source + incremental compilation == FAIL Reviewed-by: darcy ! src/share/classes/com/sun/tools/doclint/DocLint.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java + test/tools/javac/doclint/implicitSource/ImplicitSourceTest.java + test/tools/javac/doclint/implicitSource/Other.java Changeset: ac6ec071c2b2 Author: alundblad Date: 2013-09-18 14:39 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/ac6ec071c2b2 8024127: javac, Code_attribute.exception_table_langth should be Code_attribute.exception_table_length Summary: exception_table_langth renamed to exception_table_length Reviewed-by: jfranck, jjg ! src/share/classes/com/sun/tools/classfile/Code_attribute.java ! src/share/classes/com/sun/tools/javap/CodeWriter.java ! test/tools/javac/T7093325.java ! test/tools/javac/T8024039/NoDeadCodeGenerationOnTrySmtTest.java ! test/tools/javac/multicatch/Pos05.java Changeset: a2a5ad0853ed Author: bpatel Date: 2013-09-18 17:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/a2a5ad0853ed 8015249: javadoc fails to document static final fields in annotation types Reviewed-by: jjg + src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeFieldWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/WriterFactoryImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlConstants.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeFieldWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeRequiredMemberWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/WriterFactory.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeFieldBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/BuilderFactory.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java ! test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java + test/com/sun/javadoc/testAnnotationTypes/pkg/AnnotationTypeField.java ! test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java Changeset: 8df12c315ea3 Author: bpatel Date: 2013-09-18 22:47 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/8df12c315ea3 8024096: some javadoc tests may contain false positive results Reviewed-by: jjg ! test/com/sun/javadoc/lib/JavadocTester.java ! test/com/sun/javadoc/testDocFileDir/TestDocFileDir.java ! test/com/sun/javadoc/testEncoding/EncodeTest.java ! test/com/sun/javadoc/testEncoding/TestEncoding.java ! test/com/sun/javadoc/testMethodTypes/TestMethodTypes.java ! test/com/sun/javadoc/testProfiles/TestProfiles.java Changeset: 36e342dd57e2 Author: kizune Date: 2013-09-19 17:05 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/36e342dd57e2 8017248: Compiler Diacritics Issue Reviewed-by: naoto ! src/share/classes/com/sun/tools/javac/file/RegularFileObject.java Changeset: 8d1c48de706d Author: jlahoda Date: 2013-09-19 17:05 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/8d1c48de706d 8022567: Javac Should Generate Warnings For Raw Array Type Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Check.java ! test/tools/javac/warnings/6747671/T6747671.java ! test/tools/javac/warnings/6747671/T6747671.out Changeset: 0cfd5baa7154 Author: ohrstrom Date: 2013-09-19 08:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/0cfd5baa7154 8024609: sjavac assertion fails during call to BuildState.collectArtifacts Reviewed-by: jjg ! src/share/classes/com/sun/tools/sjavac/BuildState.java ! src/share/classes/com/sun/tools/sjavac/Main.java ! src/share/classes/com/sun/tools/sjavac/server/JavacServer.java Changeset: 2375ce96e80d Author: vromero Date: 2013-09-19 20:57 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/2375ce96e80d 8024437: Inferring the exception thrown: sometimes fails to compile Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java + test/tools/javac/T8024437/ExceptionInferenceFromClassFileTest.java Changeset: 9a75bdb249a2 Author: jjg Date: 2013-09-19 19:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/9a75bdb249a2 8025110: TreeCopier does not correctly copy LabeledStatementTree Reviewed-by: jjg Contributed-by: Werner Dietl ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java Changeset: 41599b57d262 Author: jlahoda Date: 2013-09-20 16:33 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/41599b57d262 8023835: TreeMaker.QualIdent() too leafy Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java + test/tools/javac/tree/MakeQualIdent.java + test/tools/javac/tree/ScopeTest.java Changeset: 571f8ebc2d51 Author: vromero Date: 2013-09-22 12:53 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/571f8ebc2d51 8024696: Missing null check in bound method reference capture Reviewed-by: jjg, briangoetz ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! test/tools/javac/lambda/8023558/T8023558a.java + test/tools/javac/lambda/methodReferenceExecution/MethodReferenceNullCheckTest.java Changeset: 86dd72166267 Author: lana Date: 2013-09-20 19:16 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/86dd72166267 Merge Changeset: 20b72bae83d7 Author: lana Date: 2013-09-22 20:20 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/20b72bae83d7 Merge Changeset: 1fe358ea75ff Author: alundblad Date: 2013-09-23 10:10 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1fe358ea75ff 8024988: javac, LVT test harness should generate tests .class files in the scratch folder Summary: Set the CLASS_OUTPUT location to the scratch directory. Changed the argument to checkClassFile accordingly. Reviewed-by: jjg, vromero ! test/tools/javac/flow/LVTHarness.java Changeset: 5f915a0c9615 Author: alundblad Date: 2013-09-23 10:42 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/5f915a0c9615 6386236: Please rename com.sun.tools.javac.util.ListBuffer.lb() Summary: Static factory method ListBuffer.lb removed. Replaced by constructor calls. Reviewed-by: jfranck, jjg ! src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/share/classes/com/sun/tools/javac/code/DeferredLintHandler.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Code.java ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/share/classes/com/sun/tools/javac/model/JavacAnnoConstructs.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/parser/Tokens.java ! src/share/classes/com/sun/tools/javac/util/GraphUtils.java ! src/share/classes/com/sun/tools/javac/util/List.java ! src/share/classes/com/sun/tools/javac/util/ListBuffer.java ! src/share/classes/com/sun/tools/javac/util/Log.java ! test/tools/javac/cast/intersection/IntersectionTypeCastTest.java ! test/tools/javac/lambda/intersection/IntersectionTargetTypeTest.java ! test/tools/javac/scope/7017664/CompoundScopeTest.java ! test/tools/javac/types/TypeHarness.java Changeset: 809a50f24d6f Author: kizune Date: 2013-09-23 17:27 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/809a50f24d6f 7154966: CRs found to be in Fixed state with no test and no noreg- keyword. Reviewed-by: ksrini + test/tools/javac/T7090499.java + test/tools/javac/T7090499.out + test/tools/javac/T7120463.java + test/tools/javac/T7120463.out + test/tools/javac/T7126754.java Changeset: 64e79d38bd07 Author: kizune Date: 2013-09-23 18:29 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/64e79d38bd07 4881267: improve diagnostic for "instanceof T" for type parameter T Reviewed-by: vromero, jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/T4881267.java + test/tools/javac/T4881267.out Changeset: 09301757bb32 Author: emc Date: 2013-09-23 15:37 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/09301757bb32 6499673: Assertion check for TypeVariable.getUpperBound() fails. Summary: Fix TypeVariable.getUpperBound to return results as specified Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/model/JavacTypes.java ! test/tools/javac/cast/intersection/model/Model01.java ! test/tools/javac/cast/intersection/model/ModelChecker.java + test/tools/javac/processing/model/type/BoundsTest.java + test/tools/javac/processing/model/type/IntersectionPropertiesTest.java Changeset: 96dcb66e6b0a Author: jjg Date: 2013-09-24 10:48 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/96dcb66e6b0a 8025050: Doclint doesn't recognize tag Reviewed-by: bpatel ! src/share/classes/com/sun/tools/doclint/HtmlTag.java ! test/tools/doclint/html/InlineTagsTest.java Changeset: 503338f16d2b Author: jjg Date: 2013-09-24 10:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/503338f16d2b 8025246: [doclint] doclint is showing error on anchor already defined when it's not Reviewed-by: bpatel ! src/share/classes/com/sun/tools/doclint/Checker.java + test/tools/doclint/anchorTests/p/Test.java + test/tools/doclint/anchorTests/p/Test.javac.out + test/tools/doclint/anchorTests/p/Test.out + test/tools/doclint/anchorTests/p/package-info.java + test/tools/doclint/anchorTests/p/package-info.javac.out + test/tools/doclint/anchorTests/p/package-info.out Changeset: 6a05a713450d Author: jjg Date: 2013-09-24 11:46 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/6a05a713450d 8025272: doclint needs to check for valid usage of @value tag Reviewed-by: bpatel ! src/share/classes/com/sun/tools/doclint/Checker.java ! src/share/classes/com/sun/tools/doclint/resources/doclint.properties + test/tools/doclint/ValueTest.java + test/tools/doclint/ValueTest.out Changeset: 3ae62331a56f Author: jjg Date: 2013-09-24 13:48 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/3ae62331a56f 8002154: [doclint] doclint should check for issues which are errors in javadoc Reviewed-by: bpatel ! src/share/classes/com/sun/tools/doclint/Checker.java ! src/share/classes/com/sun/tools/doclint/resources/doclint.properties ! test/tools/doclint/ReferenceTest.java ! test/tools/doclint/ReferenceTest.out Changeset: 184c0d6698c3 Author: bpatel Date: 2013-09-24 16:12 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/184c0d6698c3 8016328: Regression : Javadoc i18n regression caused by fix for 8012375 Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java ! test/com/sun/javadoc/testHref/TestHref.java ! test/com/sun/javadoc/testJavascript/TestJavascript.java ! test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java ! test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java ! test/com/sun/javadoc/testUseOption/TestUseOption.java Changeset: 5043e7056be8 Author: jjg Date: 2013-09-25 11:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/5043e7056be8 8025407: TypeAnnotations does not use Context Reviewed-by: jfranck ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Changeset: 1332a99572c5 Author: mfang Date: 2013-09-24 14:20 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1332a99572c5 8025215: jdk8 l10n resource file translation update 4 Reviewed-by: naoto, yhuang ! src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties ! src/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties ! src/share/classes/com/sun/tools/doclint/resources/doclint_ja.properties ! src/share/classes/com/sun/tools/doclint/resources/doclint_zh_CN.properties ! src/share/classes/com/sun/tools/javac/resources/compiler_ja.properties ! src/share/classes/com/sun/tools/javac/resources/compiler_zh_CN.properties ! src/share/classes/com/sun/tools/javac/resources/javac_ja.properties ! src/share/classes/com/sun/tools/javac/resources/javac_zh_CN.properties ! src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties ! src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties ! src/share/classes/com/sun/tools/javah/resources/l10n_ja.properties ! src/share/classes/com/sun/tools/javah/resources/l10n_zh_CN.properties ! src/share/classes/com/sun/tools/javap/resources/javap_ja.properties ! src/share/classes/com/sun/tools/javap/resources/javap_zh_CN.properties Changeset: daa3bfb82e58 Author: mfang Date: 2013-09-24 14:35 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/daa3bfb82e58 Merge Changeset: 6b702ace3e45 Author: mfang Date: 2013-09-25 07:36 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/6b702ace3e45 Merge Changeset: 68292726000e Author: mfang Date: 2013-09-25 14:02 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/68292726000e Merge Changeset: 3d61984b077c Author: jjg Date: 2013-09-25 14:04 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/3d61984b077c 8025412: Add legal header and comments to test/tools/doclint/tidy/util/Main.java Reviewed-by: bpatel ! test/tools/doclint/tidy/util/Main.java ! test/tools/doclint/tidy/util/tidy.sh Changeset: 9e884d3ddb0b Author: bpatel Date: 2013-09-25 22:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/9e884d3ddb0b 8004825: javadoc crash DocletAbortException Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java ! test/com/sun/javadoc/testValueTag/TestValueTag.java ! test/com/sun/javadoc/testValueTag/pkg1/Class1.java Changeset: 9235ae08a449 Author: jlahoda Date: 2013-09-26 20:07 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/9235ae08a449 8025491: Javac regression test tools/javac/T8003967/DetectMutableStaticFields.java failing Summary: Making HtmlTree.NONENCODING_CHARS final Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java Changeset: 13eba2e322e6 Author: vromero Date: 2013-09-26 19:06 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/13eba2e322e6 8025139: javac patch for using bootstrap compiler for debugging is not working properly Reviewed-by: jjg ! make/netbeans/langtools/build.xml ! make/tools/anttasks/SelectToolTask.java Changeset: 17653c4c22ec Author: sogoel Date: 2013-09-26 15:04 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/17653c4c22ec 8011738: Write test to check for bootstrap attributes for lambda expressions in class file Reviewed-by: mcimadamore + test/tools/javac/lambda/ByteCodeTest.java Changeset: 41541097533a Author: lana Date: 2013-09-26 17:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/41541097533a Merge Changeset: af6244ba81b6 Author: katleman Date: 2013-10-02 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/af6244ba81b6 Added tag jdk8-b110 for changeset 41541097533a ! .hgtags Changeset: 5a05c8801ecb Author: henryjen Date: 2013-10-11 15:29 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/5a05c8801ecb Merge ! .hgtags - .jcheck/conf ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ! src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/share/classes/com/sun/tools/javac/comp/Enter.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Code.java ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/share/classes/com/sun/tools/javac/model/JavacTypes.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/parser/Tokens.java ! src/share/classes/com/sun/tools/javac/tree/TreeCopier.java ! src/share/classes/com/sun/tools/javac/tree/TreeMaker.java ! src/share/classes/com/sun/tools/javac/util/GraphUtils.java ! src/share/classes/com/sun/tools/javac/util/List.java ! src/share/classes/com/sun/tools/javac/util/ListBuffer.java ! src/share/classes/com/sun/tools/javac/util/Log.java ! test/com/sun/javadoc/testMethodTypes/TestMethodTypes.java ! test/com/sun/javadoc/testProfiles/TestProfiles.java - test/tools/javac/Diagnostics/compressed/T8012003c.java - test/tools/javac/Diagnostics/compressed/T8012003c.out ! test/tools/javac/cast/intersection/IntersectionTypeCastTest.java ! test/tools/javac/cast/intersection/model/Model01.java ! test/tools/javac/cast/intersection/model/ModelChecker.java - test/tools/javac/defaultMethods/TestNoBridgeOnDefaults.java - test/tools/javac/defaultMethods/separate/Separate.java - test/tools/javac/diags/examples/BadArgTypesInLambda.java ! test/tools/javac/lambda/ByteCodeTest.java ! test/tools/javac/lambda/intersection/IntersectionTargetTypeTest.java ! test/tools/javac/types/TypeHarness.java Changeset: cc5933483c1a Author: henryjen Date: 2013-10-11 17:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/cc5933483c1a Merge ! src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java From mail at wombatsoftware.de Fri Oct 11 23:02:56 2013 From: mail at wombatsoftware.de (Daniel Sachse) Date: Sat, 12 Oct 2013 08:02:56 +0200 Subject: Dynamic filtering conditions in Lambda In-Reply-To: <52588174.3020800@oracle.com> References: <52588174.3020800@oracle.com> Message-ID: Wow nice! That was easier than I thought! Lambdas are AWESOME! :) -- Wombat Software Technologies UG (haftungsbeschr?nkt) Im MediaPark 5 D-50670 K?ln Gesch?ftsf?hrer: Daniel Sachse, Jacob Pawlik Unternehmenssitz: K?ln Handelsregister beim Amtsgericht: K?ln Handelsregister-Nummer: HRB 79316 Web: http://www.wombatsoftware.de Email: mail at wombatsoftware.de Tel.: 0221/16905638 Mobil: 01578/4922886 2013/10/12 Brian Goetz > How about: > > name.stream() > .filter(n -> startsWith.stream().anyMatch(s -> n.startsWith(s))) > ... > > > On 10/11/2013 6:25 PM, Daniel Sachse wrote: > >> Hey guys, >> >> I having the following working Java 8 code: >> >> List names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara", >> "Sam", "Sara", "Jil", "Brenda"); >> >> List result = names.stream().filter(name -> name.startsWith("K")) >> >> .filter(name -> name.length() == 3) >> .collect(toList()); >> >> ============ >> >> Now I change it to use multiple possible first letters and lenghts: >> >> List result = names.stream().filter(name -> name.startsWith("K") >> || >> name.startsWith("B")) >> >> .filter(name -> name.length() == 3 || name.length() == 4) >> .collect(toList()); >> >> >> ============ >> >> Now I want to rewrite this and use a dynamic list of starting letters and >> a >> dynamic list of length attributes, but I totally got stuck on how to >> implement this : >> >> List names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara", >> "Sam", "Sara", "Jil", "Brenda"); >> >> *List *startsWith* = Arrays.asList("B", "K", "S");* >> *List *length* = Arrays.asList(2, 3, 4);* >> >> >> List result = names.stream(). >> // Filters missing >> >> .collect(toList()); >> >> >> ============ >> >> I would be really glad if you could provide me with a solution how this >> could be implemented using Lambdas :) >> >> >> Thanks in advance! >> >> Daniel >> >> -- >> >> >> Wombat Software Technologies UG (haftungsbeschr?nkt) >> Im MediaPark 5 >> D-50670 K?ln >> >> Gesch?ftsf?hrer: Daniel Sachse, Jacob Pawlik >> Unternehmenssitz: K?ln >> Handelsregister beim Amtsgericht: K?ln >> Handelsregister-Nummer: HRB 79316 >> >> Web: http://www.wombatsoftware.de >> Email: mail at wombatsoftware.de >> Tel.: 0221/16905638 >> Mobil: 01578/4922886 >> >> From forax at univ-mlv.fr Sat Oct 12 05:27:27 2013 From: forax at univ-mlv.fr (Remi Forax) Date: Sat, 12 Oct 2013 14:27:27 +0200 Subject: Lambda syntax puzzler Message-ID: <5259402F.5090805@univ-mlv.fr> I'm sure that people of this list will be able to see the beauty of the following code produced by one of my students. IntPredicate p = i -> i --> 0; R?mi From samir at noodlesandwich.com Sat Oct 12 06:50:47 2013 From: samir at noodlesandwich.com (Samir Talwar) Date: Sat, 12 Oct 2013 14:50:47 +0100 Subject: Lambda syntax puzzler In-Reply-To: <5259402F.5090805@univ-mlv.fr> References: <5259402F.5090805@univ-mlv.fr> Message-ID: :-D Now that traditional C-style `for` loops are a thing of the past, I think we should expunge the increment and decrement operators from the language. Python had the right idea. ? Samir. On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: > I'm sure that people of this list will be able to see the beauty of the > following code produced by one of my students. > IntPredicate p = i -> i --> 0; > > R?mi > > > > > From Sebastian.Millies at softwareag.com Sat Oct 12 11:59:35 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Sat, 12 Oct 2013 18:59:35 +0000 Subject: Dynamic filtering conditions in Lambda In-Reply-To: References: <52588174.3020800@oracle.com> Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FCFFA2@HQMBX5.eur.ad.sag> but one shouldn't get sidetracked by the beauty of a solution. That algorithm requires n*m effort. Wouldn't it be better use HashSet for the criteria, and filter like this: names.stream.filter(n->startsWith.contains(n.charAt(0))), and similarly for lengths, which would be O(n). -- Sebastian > -----Original Message----- > From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev- > bounces at openjdk.java.net] On Behalf Of Daniel Sachse > Sent: Saturday, October 12, 2013 8:03 AM > To: Brian Goetz > Cc: lambda-dev at openjdk.java.net > Subject: Re: Dynamic filtering conditions in Lambda > > Wow nice! That was easier than I thought! > Lambdas are AWESOME! :) > > -- > > Wombat Software Technologies UG (haftungsbeschr?nkt) > Im MediaPark 5 > D-50670 K?ln > > Gesch?ftsf?hrer: Daniel Sachse, Jacob Pawlik > Unternehmenssitz: K?ln > Handelsregister beim Amtsgericht: K?ln > Handelsregister-Nummer: HRB 79316 > > Web: http://www.wombatsoftware.de > Email: mail at wombatsoftware.de > Tel.: 0221/16905638 > Mobil: 01578/4922886 > > > 2013/10/12 Brian Goetz > > > How about: > > > > name.stream() > > .filter(n -> startsWith.stream().anyMatch(s -> n.startsWith(s))) > > ... > > > > > > On 10/11/2013 6:25 PM, Daniel Sachse wrote: > > > >> Hey guys, > >> > >> I having the following working Java 8 code: > >> > >> List names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara", > >> "Sam", "Sara", "Jil", "Brenda"); > >> > >> List result = names.stream().filter(name -> name.startsWith("K")) > >> > >> .filter(name -> name.length() == 3) > >> .collect(toList()); > >> > >> ============ > >> > >> Now I change it to use multiple possible first letters and lenghts: > >> > >> List result = names.stream().filter(name -> name.startsWith("K") > >> || > >> name.startsWith("B")) > >> > >> .filter(name -> name.length() == 3 || name.length() == 4) > >> .collect(toList()); > >> > >> > >> ============ > >> > >> Now I want to rewrite this and use a dynamic list of starting letters and > >> a > >> dynamic list of length attributes, but I totally got stuck on how to > >> implement this : > >> > >> List names = Arrays.asList("Ben", "Brad", "Bill", "Kim", "Kara", > >> "Sam", "Sara", "Jil", "Brenda"); > >> > >> *List *startsWith* = Arrays.asList("B", "K", "S");* > >> *List *length* = Arrays.asList(2, 3, 4);* > >> > >> > >> List result = names.stream(). > >> // Filters missing > >> > >> .collect(toList()); > >> > >> > >> ============ > >> > >> I would be really glad if you could provide me with a solution how this > >> could be implemented using Lambdas :) > >> > >> > >> Thanks in advance! > >> > >> Daniel > >> > >> -- > >> > >> > >> Wombat Software Technologies UG (haftungsbeschr?nkt) > >> Im MediaPark 5 > >> D-50670 K?ln > >> > >> Gesch?ftsf?hrer: Daniel Sachse, Jacob Pawlik > >> Unternehmenssitz: K?ln > >> Handelsregister beim Amtsgericht: K?ln > >> Handelsregister-Nummer: HRB 79316 > >> > >> Web: http://www.wombatsoftware.de > >> Email: mail at wombatsoftware.de > >> Tel.: 0221/16905638 > >> Mobil: 01578/4922886 > >> > >> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From tristan.yan at oracle.com Sun Oct 13 20:27:24 2013 From: tristan.yan at oracle.com (Tristan Yan) Date: Sun, 13 Oct 2013 20:27:24 -0700 (PDT) Subject: Demo for Parallel Core Collection API Message-ID: Hi all Could you please help to review the demo code for parallel core collection API? http://cr.openjdk.java.net/~pzhang/Tristan/8023555/webrev/ Thank you very much Tristan Yan(Haibo Yan) Office : 8610-61066212 Fax : 8610-61065441 Cell : 86-18610696822 2F, Building No. 24, Zhongguancun Software Park Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193 oracle From Alan.Bateman at oracle.com Mon Oct 14 01:08:12 2013 From: Alan.Bateman at oracle.com (Alan Bateman) Date: Mon, 14 Oct 2013 09:08:12 +0100 Subject: Demo for Parallel Core Collection API In-Reply-To: References: Message-ID: <525BA66C.4060907@oracle.com> On 14/10/2013 04:27, Tristan Yan wrote: > Hi all > > > > Could you please help to review the demo code for parallel core collection API? > > http://cr.openjdk.java.net/~pzhang/Tristan/8023555/webrev/ > A drive-by comment/question (I have not studied the code in the webrev) but are you planning to include a README or something to explain the demo? At the moment it's just a code in a directory and it's not clear where someone should start, at least I don't see an IDE project or other inviting file. I would also suggest getting advice on the appropriate copyright header to use. At the moment you have GPL but I thought that the sample and demo code gets the BSD headers. -Alan From paul.sandoz at oracle.com Mon Oct 14 08:27:49 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 14 Oct 2013 17:27:49 +0200 Subject: Demo for Parallel Core Collection API In-Reply-To: References: Message-ID: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> Hi, Some high-level points first: - try and use static import where possible. - suggest that all streams are sequential. There is an inconsistency in the use and in some cases it is embedded in other stream usages. - "ParallelCore" is not a very descriptive name. Suggest "streams". - suggest moving the data classes and XML parsing code to a separate package. - Unfortunately Supplier is overloaded with the functional interface in j.u.function. Not sure much could be done about that. More details below. I am not really commenting on the specific use-case, just the usages of the API itself, plus for brevity i have removed comments. Conversion -- A more compact form of mostTProductsByCategory (without comments) is: public static > Product[] mostTProductsByCategory( Function func){ Map> m = products.stream(). collect(groupingBy(Product::getCategory, maxBy(comparing(func)))); return m.values().stream(). map(Optional::get). toArray(Product[]::new); } i.e. show the Map rather than the Collector. A DRYer form: public static Collection countries(boolean ordered) { Stream countries = customers.stream().map(Customer::getCountry); if (ordered) { return countries.distinct().collect(toCollection(LinkedList::new)); } else { return countries.collect(Collectors.toSet()); } } Shame that the type witness is required. For sequential streams is probably no advantage here to providing a link list over a list except for API educational value. Elements -- Simpler form. The function to apply the terminal op obfuscates: public static Optional suppliersInCountry(boolean findAny, String country) { Stream s = suppliers.stream(). //filter supplier who is same sa given country filter(supplier -> country. equals(supplier.getCountry())); return findAny ? s.findAny() : s.findFirst(); } The use of the collector is complicating matters. Off the top of my head what you require is a reducer that reduces to the first product whose stock units is > 0: public static Map inStockProductsByCategory( boolean findAny) { BinaryOperator reduceToFirstMatch = (l, r) -> (l != null) ? l : (r != null && r.getUnitsInStock() > 0) ? r : null; return products.stream().collect( groupingBy(Product::getCategory, reducing(null, reduceToFirstMatch))); } The above relies on the associativity of the binary operator. There is no need to collect into a filtered list then stream with findAny/findFirst since we can reduce to the result as each element is received. That reduceToFirstMatch can easily be abstracted into a higher order function taking a predicate Grouping -- public static Map> groupOrdersByCustomer() { //a collector that generate a order list from a customer Collector, List> collectOrder = Collector. of(ArrayList::new, (orders, customer) -> { orders.addAll(customer.getOrders()); }, (left, right) -> { left.addAll(right); return left; }); return customers.parallelStream(). //convert customers to a Map which key is it name, value is its //orders collect(Collectors. groupingBy(Customer::getCompanyName, collectOrder)); } Not clear to me if there are multiple customers with the same name so the catamorphic collect may not be necessary and toMap can be used instead. Perhaps there is another way to show this collect usage? Can simplify: public static > Map> productMaxByTGroupByS(boolean maxBy, Function groupFunc, Function compFunc){ //Comparator of Product which will compare on T by given function Comparator comp = Comparator.comparing(compFunc); return products.stream(). //collect products into a Map, which key is S by function of //groupFunc, value is max or min by given max and function of //compFunc collect(groupingBy( groupFunc, maxBy ? maxBy(comp) : minBy(comp))); } Simplify: public static Map>> ordersByRThenT( Function func1,Function func2){ return customers.stream(). //map every customer to orders flatMap(customer -> customer.getOrders().stream()). //group products to Map by given two functions collect(groupingBy(func1, groupingBy(func2))); } Selection -- public static Map bigOrderCustomers(double bigValue) { Function orderTotal = c -> c.getOrders().stream(). //map order to order price mapToDouble(Order::getTotal). //calculate total price sum(); //A predicate which filter customer whose total order price is greater //than bigValue Predicate bigOrder = c -> orderTotal.apply(c) >= bigValue; return customers.parallelStream(). //filter customer whose total order price is greater than bigValue filter(bigOrder). //grouping customer to a Map which key is customer, value is //total order price collect( Collectors.toMap(Function.identity(), orderTotal)); } This is essentially performing the sum twice on each element that passes through the filter. Unfortunately we don't have tuples yet and that is what i think you really need to retain the calculation for use later on. It might be simpler just to create a Map then iterate over entries and remove ones that do not match. Subset -- public static List firstNOrdersFromState(int number, String state, Consumer action){ return customers.parallelStream(). //only take customers from a particular state filter(c -> state.equals(c.getRegion())). //get orders of those customers flatMap(c -> c.getOrders().stream()). //get first number of orders substream(0, number). //apply the supplied action peek(action). //collect to a list collect(Collectors.toList()); } Replace substream(0, number) with limit(number). The use of peek here is setting a bad precedent, suggest changing to return void and using forEach or removing it. Same applies for topNCustomer. Tabulate -- This is another example of where tuples or MapStream (a stream for a tuple of 2 elements) could be useful. It would be good to remove the Pair class if at all possible, if not it is best if containing within Tabulate as this is the only place that uses it. For sameCountryCustomerAndSuppliers, off the top of my head, it is possible to reformulate using two Maps and we do not need Pair: Map> countryToSuppliers = suppliers.stream().collect( // group suppliers by their country Collectors.groupingBy(Supplier::getCountry)); Map> s = customers.stream().collect( Collectors.toMap(Function::identity, c -> countryToSuppliers.getOrDefault(c.getCountry(), null))); Simplify: public static Set bothCustomerAndSupplier() { Set suppliersName = suppliers.stream(). map(Supplier::getSupplierName). collect(toSet()); return customers.stream(). map(Customer::getCompanyName). flatMap(c -> suppliersName.contains(c) ? Stream.of(c) : Stream.empty()). collect(toSet()); } Hth, Paul. On Oct 14, 2013, at 5:27 AM, Tristan Yan wrote: > Hi all > > > > Could you please help to review the demo code for parallel core collection API? > > http://cr.openjdk.java.net/~pzhang/Tristan/8023555/webrev/ > > > > Thank you very much > > > > > > Tristan Yan(Haibo Yan) > > Office : 8610-61066212 > > Fax : 8610-61065441 > > Cell : 86-18610696822 > > > > 2F, Building No. 24, Zhongguancun Software Park > > Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193 > > oracle > > > From andrey.x.nazarov at oracle.com Mon Oct 14 08:46:46 2013 From: andrey.x.nazarov at oracle.com (Andrey Nazarov) Date: Mon, 14 Oct 2013 19:46:46 +0400 Subject: Review: demos for jdk8 In-Reply-To: References: <52326F0F.9010707@oracle.com> <52581193.3020606@oracle.com> Message-ID: <525C11E6.9000607@oracle.com> Thank you Paul, I've fixed demo http://cr.openjdk.java.net/~anazarov/try-with-resources/webrev.01 --Thanks, Andrey. On 11.10.2013 19:04, Paul Benedict wrote: > I think there may be a problem with Console::close(). Even though the > Console instance will be disposed in a try-with-resources construct, > that doesn't the reader and writer are guaranteed to close together. > Currently, if the reader fails to close, the writer will be left > dangling. What do you think of putting a try/catch in close() (and > maybe suppressing one of them)? > > > On Fri, Oct 11, 2013 at 9:56 AM, Andrey Nazarov > > wrote: > > Hi guys, > > Did you have a chance to review our jdk8 demos? > > http://cr.openjdk.java.net/~anazarov/try-with-resources/ > > http://cr.openjdk.java.net/~anazarov/repeating-annotations/ > > http://cr.openjdk.java.net/~anazarov/jdk8-demo-bulkoperations/ > > http://cr.openjdk.java.net/~anazarov/extension-methods/ > > > > -- Andrey. > > On 13.09.2013 5:49, Andrey Nazarov wrote: > > I've fixed subject > > --- > > Hi guys, > > > > We want to push our demo code for try-with-resources feature > > Could you please review this code? > > http://cr.openjdk.java.net/~anazarov/try-with-resources/ > > > > > > > --Andrey. > > > > > > > > -- > Cheers, > Paul From henry.jen at oracle.com Mon Oct 14 17:31:03 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Tue, 15 Oct 2013 00:31:03 +0000 Subject: hg: lambda/lambda/jdk: 8026362: java/lang/invoke/lambda/LogGeneratedClassesTest.java failed on windows, jtreg report Fail to org.testng.SkipException Message-ID: <20131015003136.B90BD623B3@hg.openjdk.java.net> Changeset: a09ac4923122 Author: henryjen Date: 2013-10-14 14:21 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a09ac4923122 8026362: java/lang/invoke/lambda/LogGeneratedClassesTest.java failed on windows, jtreg report Fail to org.testng.SkipException Reviewed-by: chegar ! test/java/lang/invoke/lambda/LogGeneratedClassesTest.java From mike.duigou at oracle.com Mon Oct 14 19:59:23 2013 From: mike.duigou at oracle.com (mike.duigou at oracle.com) Date: Tue, 15 Oct 2013 02:59:23 +0000 Subject: hg: lambda/lambda/jdk: 2 new changesets Message-ID: <20131015030000.EB619623BE@hg.openjdk.java.net> Changeset: 1a752e65da8e Author: mduigou Date: 2013-10-14 19:55 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1a752e65da8e backout previous skip()/slice() patch so I can reimport the current TL version. ! src/share/classes/java/util/stream/DoublePipeline.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntPipeline.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongPipeline.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/ReferencePipeline.java ! src/share/classes/java/util/stream/Stream.java ! test/java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java Changeset: 8fb344e258e9 Author: mduigou Date: 2013-10-14 19:55 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8fb344e258e9 8025910: rename substream(long) -> skip and remove substream(long,long) Reviewed-by: duke ! src/share/classes/java/util/stream/DoublePipeline.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntPipeline.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongPipeline.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/ReferencePipeline.java ! src/share/classes/java/util/stream/Stream.java ! test/java/util/stream/Stream/IntStreamTest.java ! test/java/util/stream/Stream/SubstreamTest.java ! test/java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java From stuart.marks at oracle.com Mon Oct 14 22:34:46 2013 From: stuart.marks at oracle.com (Stuart Marks) Date: Mon, 14 Oct 2013 22:34:46 -0700 Subject: Lambda syntax puzzler In-Reply-To: References: <5259402F.5090805@univ-mlv.fr> Message-ID: <525CD3F6.5030303@oracle.com> Either that, or make lambda formal parameters implicitly final. I've always hated code that mutated its parameters anyway. s'marks On 10/12/13 6:50 AM, Samir Talwar wrote: > :-D > > Now that traditional C-style `for` loops are a thing of the past, I think > we should expunge the increment and decrement operators from the language. > Python had the right idea. > > ? Samir. > > > On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: > >> I'm sure that people of this list will be able to see the beauty of the >> following code produced by one of my students. >> IntPredicate p = i -> i --> 0; >> >> R?mi >> >> >> >> >> > From stuart.marks at oracle.com Mon Oct 14 22:55:22 2013 From: stuart.marks at oracle.com (Stuart Marks) Date: Mon, 14 Oct 2013 22:55:22 -0700 Subject: Natural Encounter Order (was RE: Stream#generate() vs. iterate()) In-Reply-To: <793BD361-BD99-412A-B558-49761DC7D35F@oracle.com> References: <32F15738E8E5524DA4F01A0FA4A8E490C2FC8A20@HQMBX5.eur.ad.sag> <793BD361-BD99-412A-B558-49761DC7D35F@oracle.com> Message-ID: <525CD8CA.9010202@oracle.com> Brian is of course correct but I'd like to quibble about terminology. The term "encounter order" is defined in the java.util.stream package docs. The term "natural encounter order" is new to me, though, and while I'm pretty sure I know what Brian means by it, I don't think it's a good term. It's too easily confused with "natural order" which is a long-standing term that means something different; see java.lang.Comparable. Note that "encounter order" is a property of a stream and is derived from the stream's source (or possibly upstream operations), whereas "natural order" is a property of the elements themselves. I'd recommend avoiding "natural encounter order" and stick to simply "ordered" or "unordered". s'marks On 10/6/13 2:38 AM, Brian Goetz wrote: > Yes, you've hit the point exactly. If you don't care about order in the answer, you can always call unordered - and this is cheap - if you are going to do a parallel op that might be constrained by ordering. But the key is, you, the user , are the only one who knows whether you care about ordering or not. So we can't guess. If you don't care, tell us so, and we can give you a possibly faster execution. > > Sent from my iPhone > > On Oct 6, 2013, at 9:44 AM, Samir Talwar wrote: > >> A few things. >> >> Firstly, in your example you used the `range` method, which is both ordered >> and sorted by definition. While it hasn't been explicitly sorted, not >> keeping it sorted as a steam would confuse and surprise pretty much >> everyone. >> >> On that topic: "ordered" and "sorted" mean different things, "ordered" >> meaning the same thing as "indexed", although with less attention paid to >> implementation. As you saw, a TreeSet is both ordered and sorted, whereas a >> HashSet is neither. Lists and arrays are ordered but not necessarily >> sorted; for example, `ImmutableList.of(1, 5, 2, 6, 3)` is ordered, but >> clearly unsorted. >> >> Lastly, there's no harm in throwing in a call to `unordered` whenever >> you're not fussed about order for whatever reason. My understanding is that >> if the stream is already unordered, it will just return itself. >> >> ? Samir. >> On 6 Oct 2013 09:28, "Millies, Sebastian" >> wrote: >> >>> Thanks for that information. Part of my confusion may be just a language >>> thing. I'd call the property >>> of having a first, second etc. element "indexed", not "ordered". In >>> German, "ordered" is more akin to >>> "sorted". (But perhaps even in English, cf. SQL ORDER BY clause?). >>> >>> For that reason, I'd not have expected to have to unorder() a stream that >>> had never been >>> explicitly sort() 'ed. >>> >>> Or in other words, I'd have expected sorted()/unordered() and >>> sequential()/parallel() to >>> be pairs of operations that converted along the two dimensions, with >>> "unordered sequential" always >>> the default unless explicitly coded otherwise. >>> >>> Setting aside the choice of words, is there some rigorous definition of >>> "natural encounter order" that >>> will let me know whether a stream will in fact be ordered or unordered >>> when I create it? >>> Consider the following: >>> >>> TreeSet t = new TreeSet<>(); >>> HashSet h = new HashSet<>(); >>> Set s; >>> >>> s = t; >>> Stream tStream = s.parallelStream(); >>> >>> assert(tStream.spliterator().hasCharacteristics(Spliterator.ORDERED)) ; >>> >>> s = h; >>> Stream hStream = s.parallelStream(); >>> assert( ! >>> hStream.spliterator().hasCharacteristics(Spliterator.ORDERED)); >>> >>> Usually having a Set reference I will not know whether the object has been >>> created >>> a TreeSet or HashSet. Similarly, having a Map.EntrySet I will usually not >>> know whether the >>> underlying Map was a LinkedHashMap. So for good parallel performance I >>> will be forced >>> to always explicitly call unordered(), or conduct that complicated test on >>> the spliterator's >>> characteristics. Unless I'm overlooking something, I am not happy with >>> the concept "natural >>> encounter order", because it seems unknowable. >>> >>> -- Sebastian >>> >>>> -----Original Message----- >>>> From: Brian Goetz [mailto:brian.goetz at oracle.com] >>>> Sent: Saturday, October 05, 2013 9:56 PM >>>> To: Millies, Sebastian >>>> Cc: lambda-dev at openjdk.java.net >>>> Subject: Re: Stream#generate() vs. iterate() >>>> >>>> Sequential and unordered are orthogonal characteristics. >>>> >>>> Ordered/unordered means that the source has a natural encounter order, >>> and that >>>> stream operations should respect that order. For example, lists and >>> arrays have a >>>> natural encounter order; they have a first element, a second element, >>> etc. Whereas >>>> a HashSet has no natural encounter order; processing the elements in one >>> order is as >>>> good as any other. >>>> >>>> Sequential/parallel has to do with whether the stream operations will >>> execute >>>> sequentially or in parallel when the terminal operation is initiated. >>>> >>>> generate() returns a sequential, unordered stream. You can turn that >>> into a parallel, >>>> unordered stream with generate(f).parallel(). >>>> >>>> On Oct 5, 2013, at 6:54 PM, Millies, Sebastian wrote: >>>> >>>>> I'm a bit confused, perhaps it's just terminology: >>>>> >>>>> Looking at the Javadoc (in b106) for Stream#generate(Supplier) it says >>> it returns a >>>> sequential stream. >>>>> In your post you say it returns an unordered stream. In what way can a >>> sequential >>>> stream be unordered? >>>>> >>>>> -- Sebastian >>>>> >>>>> -----Original Message----- >>>>> From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev- >>>> bounces at openjdk.java.net] On Behalf Of Brian Goetz >>>>> Sent: Saturday, October 05, 2013 6:13 PM >>>>> To: Arne Siegel >>>>> Cc: lambda-dev at openjdk.java.net >>>>> Subject: Re: stream.parallel().limit() not usable >>>>> >>>>> [snip] >>>>> >>>>> You might also do better with Stream.generate, since it creates an >>> unordered >>>> stream: >>>>> >>>>> Stream.generate(generatorFunction) >>>>> .parallel() >>>>> ... >>>>> >>>>> >>>>> >>>>> >>>>> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 >>> Darmstadt, Germany >>>> ? Registergericht/Commercial register: Darmstadt HRB 1562 - >>> Vorstand/Management >>>> Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, >>> Arnd >>>> Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory >>> Board: Dr. Andreas >>>> Bereczky - http://www.softwareag.com >> > From tristan.yan at oracle.com Tue Oct 15 07:20:32 2013 From: tristan.yan at oracle.com (Tristan Yan) Date: Tue, 15 Oct 2013 07:20:32 -0700 (PDT) Subject: =?gb2312?B?tPC4tDogRGVtbyBmb3IgUGFyYWxsZWwgQ29yZSBDb2xsZWN0aW9uIEFQSQ==?= In-Reply-To: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> References: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> Message-ID: Thank you Paul There is one minor question, I can't compile one of your code, then I realized that's because grouping by signature is public static Collector> groupingBy(Function classifier, Collector downstream) Which makes me wonder why we need type A here, why we don't use variant here. Why the method signature is not public static Collector> groupingBy(Function classifier, Collector downstream) I do remember there was a discussion about this, but I couldn't find the answer for this. Code can't be passed compilation return products.stream(). //collect products into a Map, which key is S by function of //groupFunc, value is max or min by given max and function of //compFunc collect(groupingBy( groupFunc, maxBy ? maxBy(comp) : minBy(comp))); -----????----- ???: Paul Sandoz ????: Monday, October 14, 2013 11:28 PM ???: Tristan Yan ??: core-libs-dev at openjdk.java.net; lambda-dev at openjdk.java.net; Taras Ledkov; Andrey Nazarov; Aleksandre Iline ??: Re: Demo for Parallel Core Collection API Hi, Some high-level points first: - try and use static import where possible. - suggest that all streams are sequential. There is an inconsistency in the use and in some cases it is embedded in other stream usages. - "ParallelCore" is not a very descriptive name. Suggest "streams". - suggest moving the data classes and XML parsing code to a separate package. - Unfortunately Supplier is overloaded with the functional interface in j.u.function. Not sure much could be done about that. More details below. I am not really commenting on the specific use-case, just the usages of the API itself, plus for brevity i have removed comments. Conversion -- A more compact form of mostTProductsByCategory (without comments) is: public static > Product[] mostTProductsByCategory( Function func){ Map> m = products.stream(). collect(groupingBy(Product::getCategory, maxBy(comparing(func)))); return m.values().stream(). map(Optional::get). toArray(Product[]::new); } i.e. show the Map rather than the Collector. A DRYer form: public static Collection countries(boolean ordered) { Stream countries = customers.stream().map(Customer::getCountry); if (ordered) { return countries.distinct().collect(toCollection(LinkedList::new)); } else { return countries.collect(Collectors.toSet()); } } Shame that the type witness is required. For sequential streams is probably no advantage here to providing a link list over a list except for API educational value. Elements -- Simpler form. The function to apply the terminal op obfuscates: public static Optional suppliersInCountry(boolean findAny, String country) { Stream s = suppliers.stream(). //filter supplier who is same sa given country filter(supplier -> country. equals(supplier.getCountry())); return findAny ? s.findAny() : s.findFirst(); } The use of the collector is complicating matters. Off the top of my head what you require is a reducer that reduces to the first product whose stock units is > 0: public static Map inStockProductsByCategory( boolean findAny) { BinaryOperator reduceToFirstMatch = (l, r) -> (l != null) ? l : (r != null && r.getUnitsInStock() > 0) ? r : null; return products.stream().collect( groupingBy(Product::getCategory, reducing(null, reduceToFirstMatch))); } The above relies on the associativity of the binary operator. There is no need to collect into a filtered list then stream with findAny/findFirst since we can reduce to the result as each element is received. That reduceToFirstMatch can easily be abstracted into a higher order function taking a predicate Grouping -- public static Map> groupOrdersByCustomer() { //a collector that generate a order list from a customer Collector, List> collectOrder = Collector. of(ArrayList::new, (orders, customer) -> { orders.addAll(customer.getOrders()); }, (left, right) -> { left.addAll(right); return left; }); return customers.parallelStream(). //convert customers to a Map which key is it name, value is its //orders collect(Collectors. groupingBy(Customer::getCompanyName, collectOrder)); } Not clear to me if there are multiple customers with the same name so the catamorphic collect may not be necessary and toMap can be used instead. Perhaps there is another way to show this collect usage? Can simplify: public static > Map> productMaxByTGroupByS(boolean maxBy, Function groupFunc, Function compFunc){ //Comparator of Product which will compare on T by given function Comparator comp = Comparator.comparing(compFunc); return products.stream(). //collect products into a Map, which key is S by function of //groupFunc, value is max or min by given max and function of //compFunc collect(groupingBy( groupFunc, maxBy ? maxBy(comp) : minBy(comp))); } Simplify: public static Map>> ordersByRThenT( Function func1,Function func2){ return customers.stream(). //map every customer to orders flatMap(customer -> customer.getOrders().stream()). //group products to Map by given two functions collect(groupingBy(func1, groupingBy(func2))); } Selection -- public static Map bigOrderCustomers(double bigValue) { Function orderTotal = c -> c.getOrders().stream(). //map order to order price mapToDouble(Order::getTotal). //calculate total price sum(); //A predicate which filter customer whose total order price is greater //than bigValue Predicate bigOrder = c -> orderTotal.apply(c) >= bigValue; return customers.parallelStream(). //filter customer whose total order price is greater than bigValue filter(bigOrder). //grouping customer to a Map which key is customer, value is //total order price collect( Collectors.toMap(Function.identity(), orderTotal)); } This is essentially performing the sum twice on each element that passes through the filter. Unfortunately we don't have tuples yet and that is what i think you really need to retain the calculation for use later on. It might be simpler just to create a Map then iterate over entries and remove ones that do not match. Subset -- public static List firstNOrdersFromState(int number, String state, Consumer action){ return customers.parallelStream(). //only take customers from a particular state filter(c -> state.equals(c.getRegion())). //get orders of those customers flatMap(c -> c.getOrders().stream()). //get first number of orders substream(0, number). //apply the supplied action peek(action). //collect to a list collect(Collectors.toList()); } Replace substream(0, number) with limit(number). The use of peek here is setting a bad precedent, suggest changing to return void and using forEach or removing it. Same applies for topNCustomer. Tabulate -- This is another example of where tuples or MapStream (a stream for a tuple of 2 elements) could be useful. It would be good to remove the Pair class if at all possible, if not it is best if containing within Tabulate as this is the only place that uses it. For sameCountryCustomerAndSuppliers, off the top of my head, it is possible to reformulate using two Maps and we do not need Pair: Map> countryToSuppliers = suppliers.stream().collect( // group suppliers by their country Collectors.groupingBy(Supplier::getCountry)); Map> s = customers.stream().collect( Collectors.toMap(Function::identity, c -> countryToSuppliers.getOrDefault(c.getCountry(), null))); Simplify: public static Set bothCustomerAndSupplier() { Set suppliersName = suppliers.stream(). map(Supplier::getSupplierName). collect(toSet()); return customers.stream(). map(Customer::getCompanyName). flatMap(c -> suppliersName.contains(c) ? Stream.of(c) : Stream.empty()). collect(toSet()); } Hth, Paul. On Oct 14, 2013, at 5:27 AM, Tristan Yan wrote: > Hi all > > > > Could you please help to review the demo code for parallel core collection API? > > http://cr.openjdk.java.net/~pzhang/Tristan/8023555/webrev/ > > > > Thank you very much > > > > > > Tristan Yan(Haibo Yan) > > Office : 8610-61066212 > > Fax : 8610-61065441 > > Cell : 86-18610696822 > > > > 2F, Building No. 24, Zhongguancun Software Park > > Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193 > > oracle > > > From tristan.yan at oracle.com Tue Oct 15 07:35:33 2013 From: tristan.yan at oracle.com (Tristan Yan) Date: Tue, 15 Oct 2013 07:35:33 -0700 (PDT) Subject: =?gb2312?B?tPC4tDogRGVtbyBmb3IgUGFyYWxsZWwgQ29yZSBDb2xsZWN0aW9uIEFQSQ==?= In-Reply-To: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> References: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> Message-ID: Hi Paul you have comments "suggest that all streams are sequential. There is an inconsistency in the use and in some cases it is embedded in other stream usages." We do not really understand what exactly is meant, could you elaborate a little bit. Is it because we want to show ppl that we should use stream more than parallelStream? Thank you -----????----- ???: Paul Sandoz ????: Monday, October 14, 2013 11:28 PM ???: Tristan Yan ??: core-libs-dev at openjdk.java.net; lambda-dev at openjdk.java.net; Taras Ledkov; Andrey Nazarov; Aleksandre Iline ??: Re: Demo for Parallel Core Collection API Hi, Some high-level points first: - try and use static import where possible. - suggest that all streams are sequential. There is an inconsistency in the use and in some cases it is embedded in other stream usages. - "ParallelCore" is not a very descriptive name. Suggest "streams". - suggest moving the data classes and XML parsing code to a separate package. - Unfortunately Supplier is overloaded with the functional interface in j.u.function. Not sure much could be done about that. More details below. I am not really commenting on the specific use-case, just the usages of the API itself, plus for brevity i have removed comments. Conversion -- A more compact form of mostTProductsByCategory (without comments) is: public static > Product[] mostTProductsByCategory( Function func){ Map> m = products.stream(). collect(groupingBy(Product::getCategory, maxBy(comparing(func)))); return m.values().stream(). map(Optional::get). toArray(Product[]::new); } i.e. show the Map rather than the Collector. A DRYer form: public static Collection countries(boolean ordered) { Stream countries = customers.stream().map(Customer::getCountry); if (ordered) { return countries.distinct().collect(toCollection(LinkedList::new)); } else { return countries.collect(Collectors.toSet()); } } Shame that the type witness is required. For sequential streams is probably no advantage here to providing a link list over a list except for API educational value. Elements -- Simpler form. The function to apply the terminal op obfuscates: public static Optional suppliersInCountry(boolean findAny, String country) { Stream s = suppliers.stream(). //filter supplier who is same sa given country filter(supplier -> country. equals(supplier.getCountry())); return findAny ? s.findAny() : s.findFirst(); } The use of the collector is complicating matters. Off the top of my head what you require is a reducer that reduces to the first product whose stock units is > 0: public static Map inStockProductsByCategory( boolean findAny) { BinaryOperator reduceToFirstMatch = (l, r) -> (l != null) ? l : (r != null && r.getUnitsInStock() > 0) ? r : null; return products.stream().collect( groupingBy(Product::getCategory, reducing(null, reduceToFirstMatch))); } The above relies on the associativity of the binary operator. There is no need to collect into a filtered list then stream with findAny/findFirst since we can reduce to the result as each element is received. That reduceToFirstMatch can easily be abstracted into a higher order function taking a predicate Grouping -- public static Map> groupOrdersByCustomer() { //a collector that generate a order list from a customer Collector, List> collectOrder = Collector. of(ArrayList::new, (orders, customer) -> { orders.addAll(customer.getOrders()); }, (left, right) -> { left.addAll(right); return left; }); return customers.parallelStream(). //convert customers to a Map which key is it name, value is its //orders collect(Collectors. groupingBy(Customer::getCompanyName, collectOrder)); } Not clear to me if there are multiple customers with the same name so the catamorphic collect may not be necessary and toMap can be used instead. Perhaps there is another way to show this collect usage? Can simplify: public static > Map> productMaxByTGroupByS(boolean maxBy, Function groupFunc, Function compFunc){ //Comparator of Product which will compare on T by given function Comparator comp = Comparator.comparing(compFunc); return products.stream(). //collect products into a Map, which key is S by function of //groupFunc, value is max or min by given max and function of //compFunc collect(groupingBy( groupFunc, maxBy ? maxBy(comp) : minBy(comp))); } Simplify: public static Map>> ordersByRThenT( Function func1,Function func2){ return customers.stream(). //map every customer to orders flatMap(customer -> customer.getOrders().stream()). //group products to Map by given two functions collect(groupingBy(func1, groupingBy(func2))); } Selection -- public static Map bigOrderCustomers(double bigValue) { Function orderTotal = c -> c.getOrders().stream(). //map order to order price mapToDouble(Order::getTotal). //calculate total price sum(); //A predicate which filter customer whose total order price is greater //than bigValue Predicate bigOrder = c -> orderTotal.apply(c) >= bigValue; return customers.parallelStream(). //filter customer whose total order price is greater than bigValue filter(bigOrder). //grouping customer to a Map which key is customer, value is //total order price collect( Collectors.toMap(Function.identity(), orderTotal)); } This is essentially performing the sum twice on each element that passes through the filter. Unfortunately we don't have tuples yet and that is what i think you really need to retain the calculation for use later on. It might be simpler just to create a Map then iterate over entries and remove ones that do not match. Subset -- public static List firstNOrdersFromState(int number, String state, Consumer action){ return customers.parallelStream(). //only take customers from a particular state filter(c -> state.equals(c.getRegion())). //get orders of those customers flatMap(c -> c.getOrders().stream()). //get first number of orders substream(0, number). //apply the supplied action peek(action). //collect to a list collect(Collectors.toList()); } Replace substream(0, number) with limit(number). The use of peek here is setting a bad precedent, suggest changing to return void and using forEach or removing it. Same applies for topNCustomer. Tabulate -- This is another example of where tuples or MapStream (a stream for a tuple of 2 elements) could be useful. It would be good to remove the Pair class if at all possible, if not it is best if containing within Tabulate as this is the only place that uses it. For sameCountryCustomerAndSuppliers, off the top of my head, it is possible to reformulate using two Maps and we do not need Pair: Map> countryToSuppliers = suppliers.stream().collect( // group suppliers by their country Collectors.groupingBy(Supplier::getCountry)); Map> s = customers.stream().collect( Collectors.toMap(Function::identity, c -> countryToSuppliers.getOrDefault(c.getCountry(), null))); Simplify: public static Set bothCustomerAndSupplier() { Set suppliersName = suppliers.stream(). map(Supplier::getSupplierName). collect(toSet()); return customers.stream(). map(Customer::getCompanyName). flatMap(c -> suppliersName.contains(c) ? Stream.of(c) : Stream.empty()). collect(toSet()); } Hth, Paul. On Oct 14, 2013, at 5:27 AM, Tristan Yan wrote: > Hi all > > > > Could you please help to review the demo code for parallel core collection API? > > http://cr.openjdk.java.net/~pzhang/Tristan/8023555/webrev/ > > > > Thank you very much > > > > > > Tristan Yan(Haibo Yan) > > Office : 8610-61066212 > > Fax : 8610-61065441 > > Cell : 86-18610696822 > > > > 2F, Building No. 24, Zhongguancun Software Park > > Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193 > > oracle > > > From tristan.yan at oracle.com Tue Oct 15 07:37:50 2013 From: tristan.yan at oracle.com (Tristan Yan) Date: Tue, 15 Oct 2013 07:37:50 -0700 (PDT) Subject: =?gb2312?B?tPC4tDogRGVtbyBmb3IgUGFyYWxsZWwgQ29yZSBDb2xsZWN0aW9uIEFQSQ==?= In-Reply-To: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> References: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> Message-ID: <63affa4b-c325-4aae-814c-895f4183ff19@default> Also there is one more question I missed You suggested ""ParallelCore" is not a very descriptive name. Suggest "streams"." 1) yes we agree this demo is not for parallel computation per se 2) but we do not have a clear demo for parallel computation 3) if we are to rename this, we need to develop another one, do you have a scenario for that? Thank you -----????----- ???: Paul Sandoz ????: Monday, October 14, 2013 11:28 PM ???: Tristan Yan ??: core-libs-dev at openjdk.java.net; lambda-dev at openjdk.java.net; Taras Ledkov; Andrey Nazarov; Aleksandre Iline ??: Re: Demo for Parallel Core Collection API Hi, Some high-level points first: - try and use static import where possible. - suggest that all streams are sequential. There is an inconsistency in the use and in some cases it is embedded in other stream usages. - "ParallelCore" is not a very descriptive name. Suggest "streams". - suggest moving the data classes and XML parsing code to a separate package. - Unfortunately Supplier is overloaded with the functional interface in j.u.function. Not sure much could be done about that. More details below. I am not really commenting on the specific use-case, just the usages of the API itself, plus for brevity i have removed comments. Conversion -- A more compact form of mostTProductsByCategory (without comments) is: public static > Product[] mostTProductsByCategory( Function func){ Map> m = products.stream(). collect(groupingBy(Product::getCategory, maxBy(comparing(func)))); return m.values().stream(). map(Optional::get). toArray(Product[]::new); } i.e. show the Map rather than the Collector. A DRYer form: public static Collection countries(boolean ordered) { Stream countries = customers.stream().map(Customer::getCountry); if (ordered) { return countries.distinct().collect(toCollection(LinkedList::new)); } else { return countries.collect(Collectors.toSet()); } } Shame that the type witness is required. For sequential streams is probably no advantage here to providing a link list over a list except for API educational value. Elements -- Simpler form. The function to apply the terminal op obfuscates: public static Optional suppliersInCountry(boolean findAny, String country) { Stream s = suppliers.stream(). //filter supplier who is same sa given country filter(supplier -> country. equals(supplier.getCountry())); return findAny ? s.findAny() : s.findFirst(); } The use of the collector is complicating matters. Off the top of my head what you require is a reducer that reduces to the first product whose stock units is > 0: public static Map inStockProductsByCategory( boolean findAny) { BinaryOperator reduceToFirstMatch = (l, r) -> (l != null) ? l : (r != null && r.getUnitsInStock() > 0) ? r : null; return products.stream().collect( groupingBy(Product::getCategory, reducing(null, reduceToFirstMatch))); } The above relies on the associativity of the binary operator. There is no need to collect into a filtered list then stream with findAny/findFirst since we can reduce to the result as each element is received. That reduceToFirstMatch can easily be abstracted into a higher order function taking a predicate Grouping -- public static Map> groupOrdersByCustomer() { //a collector that generate a order list from a customer Collector, List> collectOrder = Collector. of(ArrayList::new, (orders, customer) -> { orders.addAll(customer.getOrders()); }, (left, right) -> { left.addAll(right); return left; }); return customers.parallelStream(). //convert customers to a Map which key is it name, value is its //orders collect(Collectors. groupingBy(Customer::getCompanyName, collectOrder)); } Not clear to me if there are multiple customers with the same name so the catamorphic collect may not be necessary and toMap can be used instead. Perhaps there is another way to show this collect usage? Can simplify: public static > Map> productMaxByTGroupByS(boolean maxBy, Function groupFunc, Function compFunc){ //Comparator of Product which will compare on T by given function Comparator comp = Comparator.comparing(compFunc); return products.stream(). //collect products into a Map, which key is S by function of //groupFunc, value is max or min by given max and function of //compFunc collect(groupingBy( groupFunc, maxBy ? maxBy(comp) : minBy(comp))); } Simplify: public static Map>> ordersByRThenT( Function func1,Function func2){ return customers.stream(). //map every customer to orders flatMap(customer -> customer.getOrders().stream()). //group products to Map by given two functions collect(groupingBy(func1, groupingBy(func2))); } Selection -- public static Map bigOrderCustomers(double bigValue) { Function orderTotal = c -> c.getOrders().stream(). //map order to order price mapToDouble(Order::getTotal). //calculate total price sum(); //A predicate which filter customer whose total order price is greater //than bigValue Predicate bigOrder = c -> orderTotal.apply(c) >= bigValue; return customers.parallelStream(). //filter customer whose total order price is greater than bigValue filter(bigOrder). //grouping customer to a Map which key is customer, value is //total order price collect( Collectors.toMap(Function.identity(), orderTotal)); } This is essentially performing the sum twice on each element that passes through the filter. Unfortunately we don't have tuples yet and that is what i think you really need to retain the calculation for use later on. It might be simpler just to create a Map then iterate over entries and remove ones that do not match. Subset -- public static List firstNOrdersFromState(int number, String state, Consumer action){ return customers.parallelStream(). //only take customers from a particular state filter(c -> state.equals(c.getRegion())). //get orders of those customers flatMap(c -> c.getOrders().stream()). //get first number of orders substream(0, number). //apply the supplied action peek(action). //collect to a list collect(Collectors.toList()); } Replace substream(0, number) with limit(number). The use of peek here is setting a bad precedent, suggest changing to return void and using forEach or removing it. Same applies for topNCustomer. Tabulate -- This is another example of where tuples or MapStream (a stream for a tuple of 2 elements) could be useful. It would be good to remove the Pair class if at all possible, if not it is best if containing within Tabulate as this is the only place that uses it. For sameCountryCustomerAndSuppliers, off the top of my head, it is possible to reformulate using two Maps and we do not need Pair: Map> countryToSuppliers = suppliers.stream().collect( // group suppliers by their country Collectors.groupingBy(Supplier::getCountry)); Map> s = customers.stream().collect( Collectors.toMap(Function::identity, c -> countryToSuppliers.getOrDefault(c.getCountry(), null))); Simplify: public static Set bothCustomerAndSupplier() { Set suppliersName = suppliers.stream(). map(Supplier::getSupplierName). collect(toSet()); return customers.stream(). map(Customer::getCompanyName). flatMap(c -> suppliersName.contains(c) ? Stream.of(c) : Stream.empty()). collect(toSet()); } Hth, Paul. On Oct 14, 2013, at 5:27 AM, Tristan Yan wrote: > Hi all > > > > Could you please help to review the demo code for parallel core collection API? > > http://cr.openjdk.java.net/~pzhang/Tristan/8023555/webrev/ > > > > Thank you very much > > > > > > Tristan Yan(Haibo Yan) > > Office : 8610-61066212 > > Fax : 8610-61065441 > > Cell : 86-18610696822 > > > > 2F, Building No. 24, Zhongguancun Software Park > > Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193 > > oracle > > > From paul.sandoz at oracle.com Tue Oct 15 07:55:18 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 15 Oct 2013 16:55:18 +0200 Subject: Demo for Parallel Core Collection API In-Reply-To: References: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> Message-ID: <72CCEDAE-77C2-43DB-81DE-D498B7B14C80@oracle.com> On Oct 15, 2013, at 4:20 PM, Tristan Yan wrote: > Thank you Paul > > There is one minor question, I can't compile one of your code, then I realized that's because grouping by signature is public static > Collector> groupingBy(Function classifier, Collector downstream) > > Which makes me wonder why we need type A here, why we don't use variant here. Why the method signature is not > public static Collector> groupingBy(Function classifier, Collector downstream) > > I do remember there was a discussion about this, but I couldn't find the answer for this. > > Code can't be passed compilation > return products.stream(). > //collect products into a Map, which key is S by function of > //groupFunc, value is max or min by given max and function of > //compFunc > collect(groupingBy( > groupFunc, > maxBy ? maxBy(comp) : minBy(comp))); > Drat, i just assumed that since the IDE did not show squiggly red lines that it would compile. Downstream receiving collectors refer to the intermediate accumulation type, so we should abstract what it is, be it a ? or something else of the downstream collector. Unfortunately in this case it looks like the compiler is thrown off the scent by ternary operator. If you remove the operator and just express say "minBy(comp)" it should compile. I don't know whether this is something that can be fixed in the compiler or not. Paul. From paul.sandoz at oracle.com Tue Oct 15 08:20:40 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 15 Oct 2013 17:20:40 +0200 Subject: Demo for Parallel Core Collection API In-Reply-To: References: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> Message-ID: <36B4EDF7-15DE-482C-AFB7-511A03BCDC92@oracle.com> On Oct 15, 2013, at 4:35 PM, Tristan Yan wrote: > Hi Paul > you have comments "suggest that all streams are sequential. There is an inconsistency in the use and in some cases it is embedded in other stream usages." > > We do not really understand what exactly is meant, could you elaborate a little bit. Is it because we want to show ppl that we should use stream more than parallelStream? Going parallel is easy to do but not always the right thing to do. Going parallel almost always requires more work with the expectation that work will complete sooner than the work required to get the same result sequentially. There are a number of factors that affect whether parallel is faster than sequential. Two of those factors are N, the size of the data, and Q the cost of processing an element in the pipeline. N * Q is a simple cost model, the large that product the better the chances of parallel speed up. N is easy to know, Q not so easy but can often be intuitively guessed. (Note that there are other factors such as the properties of the stream source and operations that Brian and I talked about in our J1 presentation.) Demo code that just makes everything (or most streams) parallel is sending out the wrong message. So i think the demo code should present two general things: 1) various stream functionality, as you have done; 2) parallel vs. sequential for various cases where it is known that parallel is faster on a multi-core system. For 2) i strongly recommend measuring using jmh [1]. The data sets you have may or may not be amenable to parallel processing, it's worth investigating though. I have ideas for other parallel demos. One is creating probably primes (now that SecureRandom is replaced with ThreadLocalRandom), creating a probably prime that is a BigInteger is an relatively expensive operation so Q should be high. Another more advanced demo is a Monte-Carlo calculation of PI using SplittableRandom and a special Spliterator, in this case N should be largish. But there are other simpler demonstrations like sum of squares etc to get across that N should be large. Another demo could be calculation of a mandelbrot set, which is embarrassingly parallel over an area in the complex plane. So while you should try and fit some parallel vs. sequential execution into your existing demos i do think it worth having a separate set of demos that get across the the simple cost model of N * Q. So feel free to use some of those ideas previously mentioned, i find those ideas fun so perhaps others will too :-) Paul. [1] http://openjdk.java.net/projects/code-tools/jmh/ On Oct 15, 2013, at 4:37 PM, Tristan Yan wrote: > Also there is one more question I missed > > You suggested ""ParallelCore" is not a very descriptive name. Suggest "streams"." > 1) yes we agree this demo is not for parallel computation per se > 2) but we do not have a clear demo for parallel computation > 3) if we are to rename this, we need to develop another one, do you have a scenario for that? From henry.jen at oracle.com Tue Oct 15 10:33:45 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Tue, 15 Oct 2013 17:33:45 +0000 Subject: hg: lambda/lambda/jdk: 7057785: Add note about optional support of recursive methods for self-referential Collection/Map Message-ID: <20131015173524.7C482623FA@hg.openjdk.java.net> Changeset: faf082d3673a Author: mduigou Date: 2013-09-30 15:50 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/faf082d3673a 7057785: Add note about optional support of recursive methods for self-referential Collection/Map Reviewed-by: scolebourne, darcy, mduigou Contributed-by: Stephen Colebourne ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/Map.java From spullara at gmail.com Tue Oct 15 10:56:18 2013 From: spullara at gmail.com (Sam Pullara) Date: Tue, 15 Oct 2013 10:56:18 -0700 Subject: Building on Mavericks Message-ID: <3BB79968-3B9A-47E3-81E9-3F28847D8AB3@gmail.com> Anyone have this working? gcc42 barfs on some of the OSX .h files. Sam Compiling 908 files for BUILD_JOBJC_HEADERS Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/e_pow.c: In function ?__j__ieee754_pow?: /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/e_pow.c:149: warning: comparison between signed and unsigned /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/e_sqrt.c: In function ?__j__ieee754_sqrt?: /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/e_sqrt.c:174: warning: comparison between signed and unsigned /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_ceil.c: In function ?jceil?: /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_ceil.c:81: warning: comparison between signed and unsigned /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_floor.c: In function ?jfloor?: /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_floor.c:82: warning: comparison between signed and unsigned /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_log1p.c: In function ?jlog1p?: /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_log1p.c:132: warning: comparison between signed and unsigned /Users/sam/Projects/tl/jdk/src/solaris/native/java/util/TimeZone_md.c: In function ?getGMTOffsetID?: /Users/sam/Projects/tl/jdk/src/solaris/native/java/util/TimeZone_md.c:696: warning: assignment makes integer from pointer without a cast /Users/sam/Projects/tl/jdk/src/solaris/native/java/util/TimeZone_md.c:699: warning: assignment makes integer from pointer without a cast /Users/sam/Projects/tl/jdk/src/solaris/native/java/lang/java_props_md.c: In function ?GetJavaProperties?: /Users/sam/Projects/tl/jdk/src/solaris/native/java/lang/java_props_md.c:460: warning: enumeration value ?unset? not handled in switch /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c: In function ?buildJniFunctionName?: /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c:49: warning: implicit declaration of function ?strcpy? /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c:49: warning: incompatible implicit declaration of built-in function ?strcpy? /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c:51: warning: implicit declaration of function ?strcat? /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c:51: warning: incompatible implicit declaration of built-in function ?strcat? In file included from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:162, from /Users/sam/Projects/tl/jdk/src/solaris/native/java/lang/java_props_macosx.c:35: /System/Library/Frameworks/Foundation.framework/Headers/NSUserNotification.h:16: error: expected ?,? or ?}? before ?__attribute__? make[2]: *** [/Users/sam/Projects/tl/build/macosx-x86_64-normal-server-release/jdk/objs/libjava/java_props_macosx.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [libs-only] Error 2 make: *** [jdk-only] Error 2 From mike.duigou at oracle.com Tue Oct 15 11:12:39 2013 From: mike.duigou at oracle.com (mike.duigou at oracle.com) Date: Tue, 15 Oct 2013 18:12:39 +0000 Subject: hg: lambda/lambda/jdk: rename Stream.skip() parameter in a few places that got missed. Message-ID: <20131015181318.83721623FD@hg.openjdk.java.net> Changeset: f145d19e384a Author: mduigou Date: 2013-10-15 11:11 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f145d19e384a rename Stream.skip() parameter in a few places that got missed. ! src/share/classes/java/util/stream/DoublePipeline.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntPipeline.java ! src/share/classes/java/util/stream/LongPipeline.java ! src/share/classes/java/util/stream/ReferencePipeline.java From mike.duigou at oracle.com Tue Oct 15 13:18:17 2013 From: mike.duigou at oracle.com (Mike Duigou) Date: Tue, 15 Oct 2013 13:18:17 -0700 Subject: RFR : 8025910 : (s) Rename Stream.substream(long) -> skip(long) and remove substream(long, long) Message-ID: Hello all; As promised on the lambda-libs-spec-experts mailing list I have prepared a changeset which renames the single arg substream() to skip() and remove the two arg substream() method (aka "slice"). The rationale behind these changes is: - skip() is easier for new users to locate than substream(). - substream(long,long) has ambiguous semantics and duplicates skip().limit() http://cr.openjdk.java.net/~mduigou/JDK-8025910/1/webrev/ http://cr.openjdk.java.net/~mduigou/JDK-8025910/1/specidff/overview-summary.html Cheers, Mike From henry.jen at oracle.com Tue Oct 15 14:20:35 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Tue, 15 Oct 2013 21:20:35 +0000 Subject: hg: lambda/lambda/jdk: fix link in javadoc Message-ID: <20131015212139.EBD6762419@hg.openjdk.java.net> Changeset: 9e7c7ada796e Author: henryjen Date: 2013-10-15 14:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9e7c7ada796e fix link in javadoc ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java From henry.jen at oracle.com Tue Oct 15 15:34:48 2013 From: henry.jen at oracle.com (Henry Jen) Date: Tue, 15 Oct 2013 15:34:48 -0700 Subject: RFR: 8025909: Lambda Library Spec Updates Message-ID: <525DC308.9010803@oracle.com> Hi, Please kindly review the latest update on lambda library spec, and a few minor code clean up. Webrev and specdiff can be found at, http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/webrev http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/specdiff This webrev also covers update that address JDK-8024179 as the spec update explains why reported scenario is expected. Cheers, Henry From mike.duigou at oracle.com Tue Oct 15 16:05:04 2013 From: mike.duigou at oracle.com (Mike Duigou) Date: Tue, 15 Oct 2013 16:05:04 -0700 Subject: RFR: 8025909: Lambda Library Spec Updates In-Reply-To: <525DC308.9010803@oracle.com> References: <525DC308.9010803@oracle.com> Message-ID: <4CB5E03B-7509-4D6F-B127-4AFDC46C574D@oracle.com> Where is the null handling for methods like DoubleStream.allMatch() described? I don't see an @throws NullPointerException if predicate is null. The class level "functional interface parameters to methods, unless otherwise specified, may not be null" instruction is removed with reference to Stream docs. I hope this is sufficient notice. For allMatch/noneMatch I think the case where predicate is null and the stream is empty is covered by "and the predicate is not evaluated". Mike On Oct 15 2013, at 15:34 , Henry Jen wrote: > Hi, > > Please kindly review the latest update on lambda library spec, and a few > minor code clean up. > > Webrev and specdiff can be found at, > > http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/webrev > http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/specdiff > > This webrev also covers update that address JDK-8024179 as the spec > update explains why reported scenario is expected. > > Cheers, > Henry From henry.jen at oracle.com Tue Oct 15 22:53:41 2013 From: henry.jen at oracle.com (Henry Jen) Date: Tue, 15 Oct 2013 22:53:41 -0700 Subject: RFR: 8025909: Lambda Library Spec Updates In-Reply-To: <4CB5E03B-7509-4D6F-B127-4AFDC46C574D@oracle.com> References: <525DC308.9010803@oracle.com> <4CB5E03B-7509-4D6F-B127-4AFDC46C574D@oracle.com> Message-ID: <525E29E5.8080406@oracle.com> On 10/15/2013 04:05 PM, Mike Duigou wrote: > Where is the null handling for methods like DoubleStream.allMatch() > described? I don't see an @throws NullPointerException if predicate > is null. The class level "functional interface parameters to methods, > unless otherwise specified, may not be null" instruction is removed > with reference to Stream docs. I hope this is sufficient notice. > The idea is to avoid duplicate documentation(clutering) by consolidate into reference of Stream and package documentation. It may not be obvious, but should be enough? Note that we state "must be non-null unless otherwise specified" but don't specify what would happen if null is passed. I think that's is intentionally ambiguous and allows some wiggle room here. Should we be more explicit on NPE? I prefer to leave it as is, so it's unspecified behavior if null is passed. > For allMatch/noneMatch I think the case where predicate is null and > the stream is empty is covered by "and the predicate is not > evaluated". > Right. That covers the empty case "does not evaluate the predicate", and we didn't "otherwise specified" about null, so in theory it still "must be non-null". Cheers, Henry > Mike > > On Oct 15 2013, at 15:34 , Henry Jen wrote: > >> Hi, >> >> Please kindly review the latest update on lambda library spec, and >> a few minor code clean up. >> >> Webrev and specdiff can be found at, >> >> http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/webrev >> http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/specdiff >> >> This webrev also covers update that address JDK-8024179 as the >> spec update explains why reported scenario is expected. >> >> Cheers, Henry > From henry.jen at oracle.com Tue Oct 15 22:54:50 2013 From: henry.jen at oracle.com (Henry Jen) Date: Tue, 15 Oct 2013 22:54:50 -0700 Subject: RFR: 8025909: Lambda Library Spec Updates In-Reply-To: <4CB5E03B-7509-4D6F-B127-4AFDC46C574D@oracle.com> References: <525DC308.9010803@oracle.com> <4CB5E03B-7509-4D6F-B127-4AFDC46C574D@oracle.com> Message-ID: <525E2A2A.8010802@oracle.com> On 10/15/2013 04:05 PM, Mike Duigou wrote: > Where is the null handling for methods like DoubleStream.allMatch() > described? I don't see an @throws NullPointerException if predicate > is null. The class level "functional interface parameters to methods, > unless otherwise specified, may not be null" instruction is removed > with reference to Stream docs. I hope this is sufficient notice. > The idea is to avoid duplicate documentation(clutering) by consolidate into reference of Stream and package documentation. It may not as obvious, but should be enough? Note that we state "must be non-null unless otherwise specified" but don't specify what would happen if null is passed. I think that's is intentionally ambiguous and allows some wiggle room here. Should we be more explicit on NPE? I prefer to leave it as is, so it's unspecified behavior if null is passed. > For allMatch/noneMatch I think the case where predicate is null and > the stream is empty is covered by "and the predicate is not > evaluated". > Right. That covers the empty case "does not evaluate the predicate", and we didn't "otherwise specified" about null, so in theory it still "must be non-null". As we Cheers, Henry > Mike > > On Oct 15 2013, at 15:34 , Henry Jen wrote: > >> Hi, >> >> Please kindly review the latest update on lambda library spec, and >> a few minor code clean up. >> >> Webrev and specdiff can be found at, >> >> http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/webrev >> http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/specdiff >> >> This webrev also covers update that address JDK-8024179 as the >> spec update explains why reported scenario is expected. >> >> Cheers, Henry > From henry.jen at oracle.com Tue Oct 15 23:20:40 2013 From: henry.jen at oracle.com (Henry Jen) Date: Tue, 15 Oct 2013 23:20:40 -0700 Subject: RFR: 8025909: Lambda Library Spec Updates In-Reply-To: <525E29E5.8080406@oracle.com> References: <525DC308.9010803@oracle.com> <4CB5E03B-7509-4D6F-B127-4AFDC46C574D@oracle.com> <525E29E5.8080406@oracle.com> Message-ID: <525E3038.4010307@oracle.com> Apologize for the multiple copies, Thunderbird had issue with network, and resulting several copies sent. Sorry for the incident. Cheers, Henry On 10/15/2013 10:53 PM, Henry Jen wrote: > On 10/15/2013 04:05 PM, Mike Duigou wrote: >> Where is the null handling for methods like DoubleStream.allMatch() >> described? I don't see an @throws NullPointerException if predicate >> is null. The class level "functional interface parameters to methods, >> unless otherwise specified, may not be null" instruction is removed >> with reference to Stream docs. I hope this is sufficient notice. >> > > The idea is to avoid duplicate documentation(clutering) by consolidate > into reference of Stream and package documentation. It may not be > obvious, but should be enough? > From paul.sandoz at oracle.com Wed Oct 16 00:31:08 2013 From: paul.sandoz at oracle.com (paul.sandoz at oracle.com) Date: Wed, 16 Oct 2013 07:31:08 +0000 Subject: hg: lambda/lambda/jdk: Sync up doc of primitive iterators. Message-ID: <20131016073203.320416244B@hg.openjdk.java.net> Changeset: 4cf200ae8b12 Author: psandoz Date: 2013-10-16 09:30 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4cf200ae8b12 Sync up doc of primitive iterators. ! src/share/classes/java/util/PrimitiveIterator.java From paul.sandoz at oracle.com Wed Oct 16 00:43:23 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 16 Oct 2013 09:43:23 +0200 Subject: Building on Mavericks In-Reply-To: <3BB79968-3B9A-47E3-81E9-3F28847D8AB3@gmail.com> References: <3BB79968-3B9A-47E3-81E9-3F28847D8AB3@gmail.com> Message-ID: <548C0A9F-06E6-46F4-852A-D581995C0E07@oracle.com> Hi Sam, I have not tried the dev preview of Mavericks. Sticking to 10.8.5 and Xcode 4.6.3 until further notice. 10.8.5 and Xcode 5.0 may also cause some issues. Suggest you mailto:build-dev at openjdk.java.net Paul. On Oct 15, 2013, at 7:56 PM, Sam Pullara wrote: > Anyone have this working? gcc42 barfs on some of the OSX .h files. > > Sam > > Compiling 908 files for BUILD_JOBJC_HEADERS > Note: Some input files use unchecked or unsafe operations. > Note: Recompile with -Xlint:unchecked for details. > Note: Some input files use unchecked or unsafe operations. > Note: Recompile with -Xlint:unchecked for details. > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/e_pow.c: In function ?__j__ieee754_pow?: > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/e_pow.c:149: warning: comparison between signed and unsigned > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/e_sqrt.c: In function ?__j__ieee754_sqrt?: > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/e_sqrt.c:174: warning: comparison between signed and unsigned > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_ceil.c: In function ?jceil?: > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_ceil.c:81: warning: comparison between signed and unsigned > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_floor.c: In function ?jfloor?: > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_floor.c:82: warning: comparison between signed and unsigned > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_log1p.c: In function ?jlog1p?: > /Users/sam/Projects/tl/jdk/src/share/native/java/lang/fdlibm/src/s_log1p.c:132: warning: comparison between signed and unsigned > /Users/sam/Projects/tl/jdk/src/solaris/native/java/util/TimeZone_md.c: In function ?getGMTOffsetID?: > /Users/sam/Projects/tl/jdk/src/solaris/native/java/util/TimeZone_md.c:696: warning: assignment makes integer from pointer without a cast > /Users/sam/Projects/tl/jdk/src/solaris/native/java/util/TimeZone_md.c:699: warning: assignment makes integer from pointer without a cast > /Users/sam/Projects/tl/jdk/src/solaris/native/java/lang/java_props_md.c: In function ?GetJavaProperties?: > /Users/sam/Projects/tl/jdk/src/solaris/native/java/lang/java_props_md.c:460: warning: enumeration value ?unset? not handled in switch > /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c: In function ?buildJniFunctionName?: > /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c:49: warning: implicit declaration of function ?strcpy? > /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c:49: warning: incompatible implicit declaration of built-in function ?strcpy? > /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c:51: warning: implicit declaration of function ?strcat? > /Users/sam/Projects/tl/jdk/src/solaris/native/common/jni_util_md.c:51: warning: incompatible implicit declaration of built-in function ?strcat? > In file included from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:162, > from /Users/sam/Projects/tl/jdk/src/solaris/native/java/lang/java_props_macosx.c:35: > /System/Library/Frameworks/Foundation.framework/Headers/NSUserNotification.h:16: error: expected ?,? or ?}? before ?__attribute__? > make[2]: *** [/Users/sam/Projects/tl/build/macosx-x86_64-normal-server-release/jdk/objs/libjava/java_props_macosx.o] Error 1 > make[2]: *** Waiting for unfinished jobs.... > make[1]: *** [libs-only] Error 2 > make: *** [jdk-only] Error 2 > > From paul.sandoz at oracle.com Wed Oct 16 02:36:40 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 16 Oct 2013 11:36:40 +0200 Subject: RFR : 8025910 : (s) Rename Stream.substream(long) -> skip(long) and remove substream(long, long) In-Reply-To: References: Message-ID: <2BB63994-736D-4F87-97FF-2AD6A73F3B79@oracle.com> Looks good with Henry's correction (that i missed the first time around!). Paul. On Oct 15, 2013, at 10:18 PM, Mike Duigou wrote: > Hello all; > > As promised on the lambda-libs-spec-experts mailing list I have prepared a changeset which renames the single arg substream() to skip() and remove the two arg substream() method (aka "slice"). > > The rationale behind these changes is: > > - skip() is easier for new users to locate than substream(). > - substream(long,long) has ambiguous semantics and duplicates skip().limit() > > http://cr.openjdk.java.net/~mduigou/JDK-8025910/1/webrev/ > http://cr.openjdk.java.net/~mduigou/JDK-8025910/1/specidff/overview-summary.html > > Cheers, > > Mike From zhong.j.yu at gmail.com Wed Oct 16 05:31:04 2013 From: zhong.j.yu at gmail.com (Zhong Yu) Date: Wed, 16 Oct 2013 20:31:04 +0800 Subject: Lambda syntax puzzler In-Reply-To: <525CD3F6.5030303@oracle.com> References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> Message-ID: On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks wrote: > Either that, or make lambda formal parameters implicitly final. I've always That is apparently a good idea with no objections; how come EG isn't adopting it? what are the concerns? > hated code that mutated its parameters anyway. > > s'marks > > On 10/12/13 6:50 AM, Samir Talwar wrote: >> :-D >> >> Now that traditional C-style `for` loops are a thing of the past, I think >> we should expunge the increment and decrement operators from the language. >> Python had the right idea. >> >> ? Samir. >> >> >> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: >> >>> I'm sure that people of this list will be able to see the beauty of the >>> following code produced by one of my students. >>> IntPredicate p = i -> i --> 0; >>> >>> R?mi >>> >>> >>> >>> >>> >> > From Sebastian.Millies at softwareag.com Wed Oct 16 06:43:02 2013 From: Sebastian.Millies at softwareag.com (Millies, Sebastian) Date: Wed, 16 Oct 2013 13:43:02 +0000 Subject: Lambda syntax puzzler In-Reply-To: References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> Message-ID: <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> Yes, I like that proposal as well. Only thing could suffer would be automatic conversion of inner classes to lambdas, if those class implementations mutated their parameters. That would not concern me. -- Sebastian -----Original Message----- From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Zhong Yu Sent: Wednesday, October 16, 2013 2:31 PM To: Stuart Marks Cc: lambda-dev at openjdk.java.net Subject: Re: Lambda syntax puzzler On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks wrote: > Either that, or make lambda formal parameters implicitly final. I've > always That is apparently a good idea with no objections; how come EG isn't adopting it? what are the concerns? > hated code that mutated its parameters anyway. > > s'marks > > On 10/12/13 6:50 AM, Samir Talwar wrote: >> :-D >> >> Now that traditional C-style `for` loops are a thing of the past, I >> think we should expunge the increment and decrement operators from the language. >> Python had the right idea. >> >> ? Samir. >> >> >> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: >> >>> I'm sure that people of this list will be able to see the beauty of >>> the following code produced by one of my students. >>> IntPredicate p = i -> i --> 0; >>> >>> R?mi >>> >>> >>> >>> >>> >> > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com From forax at univ-mlv.fr Wed Oct 16 07:05:50 2013 From: forax at univ-mlv.fr (Remi Forax) Date: Wed, 16 Oct 2013 16:05:50 +0200 Subject: Lambda syntax puzzler In-Reply-To: <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> Message-ID: <525E9D3E.7000209@univ-mlv.fr> On 10/16/2013 03:43 PM, Millies, Sebastian wrote: > Yes, I like that proposal as well. Only thing could suffer would be automatic conversion > of inner classes to lambdas, if those class implementations mutated their parameters. > That would not concern me. -- Sebastian I think that the main issue I see, is that there is no Java keyword for saying 'not final', so if by example you have a method that calls a lambda with the bounds of a partition of an array, you can not write a code like this: (array, i, end) -> { for(; i < end; i++) { ... array[i] ... } } With the proposal of Stuart, you need to introduce a new local variable (array, start, end) -> { for(int i = start; i < end; i++) { ... array[i] ... } } That's said, it's not a big issue cheers, R?mi > > -----Original Message----- > From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Zhong Yu > Sent: Wednesday, October 16, 2013 2:31 PM > To: Stuart Marks > Cc: lambda-dev at openjdk.java.net > Subject: Re: Lambda syntax puzzler > > On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks wrote: >> Either that, or make lambda formal parameters implicitly final. I've >> always > That is apparently a good idea with no objections; how come EG isn't adopting it? what are the concerns? > >> hated code that mutated its parameters anyway. >> >> s'marks >> >> On 10/12/13 6:50 AM, Samir Talwar wrote: >>> :-D >>> >>> Now that traditional C-style `for` loops are a thing of the past, I >>> think we should expunge the increment and decrement operators from the language. >>> Python had the right idea. >>> >>> ? Samir. >>> >>> >>> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: >>> >>>> I'm sure that people of this list will be able to see the beauty of >>>> the following code produced by one of my students. >>>> IntPredicate p = i -> i --> 0; >>>> >>>> R?mi >>>> >>>> >>>> >>>> >>>> > > Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com > > From brian.goetz at oracle.com Wed Oct 16 11:22:21 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Wed, 16 Oct 2013 14:22:21 -0400 Subject: Lambda syntax puzzler In-Reply-To: References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> Message-ID: <99DFA024-1EEB-4024-816F-BC334BBD778F@oracle.com> Eg discussed and rejected. Sent from my iPhone On Oct 16, 2013, at 8:31 AM, Zhong Yu wrote: > On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks wrote: >> Either that, or make lambda formal parameters implicitly final. I've always > > That is apparently a good idea with no objections; how come EG isn't > adopting it? what are the concerns? > >> hated code that mutated its parameters anyway. >> >> s'marks >> >> On 10/12/13 6:50 AM, Samir Talwar wrote: >>> :-D >>> >>> Now that traditional C-style `for` loops are a thing of the past, I think >>> we should expunge the increment and decrement operators from the language. >>> Python had the right idea. >>> >>> ? Samir. >>> >>> >>> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: >>> >>>> I'm sure that people of this list will be able to see the beauty of the >>>> following code produced by one of my students. >>>> IntPredicate p = i -> i --> 0; >>>> >>>> R?mi > From jon.rafkind at hp.com Wed Oct 16 15:42:41 2013 From: jon.rafkind at hp.com (Rafkind, Jon) Date: Wed, 16 Oct 2013 22:42:41 +0000 Subject: question about potentially compatible expression Message-ID: In section 15.12.2.1 in JSR 335 is the following text A lambda expression, a method reference, or a constructor reference is potentially compatible with a type variable if the type variable is a type parameter of the candidate method. Why is there a restriction that the type parameter must be on the candidate method? This rules out the possibility of using a type parameter on the enclosing class as in the following code: public class y

{ public void boo(P t){ } public void q(){ } public void doit(){ boo(this::q); } } interface Z{ public void q(); } I get this error: $ javac8 y.java y.java:9: error: incompatible types: P is not a functional interface boo(this::q); But attaching 'P' to method 'boo' directly works. public

void boo(P t){ } From zhong.j.yu at gmail.com Wed Oct 16 17:48:40 2013 From: zhong.j.yu at gmail.com (Zhong Yu) Date: Thu, 17 Oct 2013 08:48:40 +0800 Subject: Lambda syntax puzzler In-Reply-To: <525E9D3E.7000209@univ-mlv.fr> References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> <525E9D3E.7000209@univ-mlv.fr> Message-ID: Michael Nascimento previously proposed that implicit lambda parameters should be implicitly "final" (and there's no way to change it to non-final); explicty lambda parameters are just like method parameters, it's not final by default, but it can be declared "final". That sounds a very nice solution. On Wed, Oct 16, 2013 at 10:05 PM, Remi Forax wrote: > On 10/16/2013 03:43 PM, Millies, Sebastian wrote: >> Yes, I like that proposal as well. Only thing could suffer would be automatic conversion >> of inner classes to lambdas, if those class implementations mutated their parameters. >> That would not concern me. -- Sebastian > > I think that the main issue I see, is that there is no Java keyword for > saying 'not final', > so if by example you have a method that calls a lambda with the bounds > of a partition of an array, you can not write a code like this: > (array, i, end) -> { > for(; i < end; i++) { > ... array[i] ... > } > } > > With the proposal of Stuart, you need to introduce a new local variable > (array, start, end) -> { > for(int i = start; i < end; i++) { > ... array[i] ... > } > } > > That's said, it's not a big issue > > cheers, > R?mi > >> >> -----Original Message----- >> From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Zhong Yu >> Sent: Wednesday, October 16, 2013 2:31 PM >> To: Stuart Marks >> Cc: lambda-dev at openjdk.java.net >> Subject: Re: Lambda syntax puzzler >> >> On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks wrote: >>> Either that, or make lambda formal parameters implicitly final. I've >>> always >> That is apparently a good idea with no objections; how come EG isn't adopting it? what are the concerns? >> >>> hated code that mutated its parameters anyway. >>> >>> s'marks >>> >>> On 10/12/13 6:50 AM, Samir Talwar wrote: >>>> :-D >>>> >>>> Now that traditional C-style `for` loops are a thing of the past, I >>>> think we should expunge the increment and decrement operators from the language. >>>> Python had the right idea. >>>> >>>> ? Samir. >>>> >>>> >>>> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: >>>> >>>>> I'm sure that people of this list will be able to see the beauty of >>>>> the following code produced by one of my students. >>>>> IntPredicate p = i -> i --> 0; >>>>> >>>>> R?mi >>>>> >>>>> >>>>> >>>>> >>>>> >> >> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com >> >> > > From cushon at google.com Wed Oct 16 17:48:43 2013 From: cushon at google.com (cushon) Date: Wed, 16 Oct 2013 17:48:43 -0700 Subject: Possible regression involving inferred generic types Message-ID: Forwarded from compiler-dev at Alex Buckley's suggestion. Original thread: http://mail.openjdk.java.net/pipermail/compiler-dev/2013-October/007726.html I found some cases where javac 8 behaviour diverges from javac 7, and I'm interested in knowing whether this is a bug or an intentional change. The following programs do not compile with the jdk8 javac. (I tried b111 and 954dd199d6ff). All of the programs compile with the jdk7 javac. ------------------------------------------------------------------------------- import java.util.List; class ReproOne { static class Baz { public static List> getElements(Baz transcoder) { return null; } } private static void bar(Baz arg) { for (Baz element : Baz.getElements(arg)) {} } } ------------------------------------------------------------------------------- abstract class ReproTwo { class Bar {} T get(Bar arg1, Bar arg2) { return circularGet(arg2, arg2); } abstract T circularGet(final Bar arg1, final Bar arg2); } ------------------------------------------------------------------------------- abstract class ReproThree { class Binding {} class ProviderBinding extends Binding {} abstract V visitOther(Binding binding); public V visitTwo(ProviderBinding providerBinding) { return visitOther((Binding) providerBinding); } } ------------------------------------------------------------------------------- javac output: ReproOne.java:12: error: incompatible types: Object cannot be converted to Baz for (Baz element : Baz.getElements(arg)) {} ^ ReproTwo.java:6: error: incompatible types: Object cannot be converted to T return circularGet(arg2, arg2); ^ where T is a type-variable: T extends Object declared in class ReproTwo ReproThree.java:10: error: incompatible types: Object cannot be converted to V return visitOther((Binding) providerBinding); ^ where V is a type-variable: V extends Object declared in class ReproThree From stuart.marks at oracle.com Wed Oct 16 23:53:14 2013 From: stuart.marks at oracle.com (Stuart Marks) Date: Wed, 16 Oct 2013 23:53:14 -0700 Subject: Lambda syntax puzzler In-Reply-To: <525E9D3E.7000209@univ-mlv.fr> References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> <525E9D3E.7000209@univ-mlv.fr> Message-ID: <525F895A.3090900@oracle.com> On 10/16/13 7:05 AM, Remi Forax wrote: > With the proposal of Stuart, you need to introduce a new local variable > (array, start, end) -> { > for(int i = start; i < end; i++) { > ... array[i] ... > } > } Oh crap, I shouldn't have opened my big mouth. My statement about making formal parameters implicitly final wasn't a proposal, nor did I intend to reopen this conversation. It was a flip comment based on a stylistic pet peeve of mine. Turns out this was discussed extensively last year on lambda-dev in a thread started by Venkat S. [1] I either missed this or had forgotten about it. There were a fair number of people who thought it was reasonable, but there were questions about how beneficial it would be, plus there was the usual fractal graph of related and dependent issues. I suggest people go reread that thread. Sorry for the noise. s'marks [1] http://mail.openjdk.java.net/pipermail/lambda-dev/2012-December/007280.html > > That's said, it's not a big issue > > cheers, > R?mi > >> >> -----Original Message----- >> From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Zhong Yu >> Sent: Wednesday, October 16, 2013 2:31 PM >> To: Stuart Marks >> Cc: lambda-dev at openjdk.java.net >> Subject: Re: Lambda syntax puzzler >> >> On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks wrote: >>> Either that, or make lambda formal parameters implicitly final. I've >>> always >> That is apparently a good idea with no objections; how come EG isn't adopting it? what are the concerns? >> >>> hated code that mutated its parameters anyway. >>> >>> s'marks >>> >>> On 10/12/13 6:50 AM, Samir Talwar wrote: >>>> :-D >>>> >>>> Now that traditional C-style `for` loops are a thing of the past, I >>>> think we should expunge the increment and decrement operators from the language. >>>> Python had the right idea. >>>> >>>> ? Samir. >>>> >>>> >>>> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: >>>> >>>>> I'm sure that people of this list will be able to see the beauty of >>>>> the following code produced by one of my students. >>>>> IntPredicate p = i -> i --> 0; >>>>> >>>>> R?mi >>>>> >>>>> >>>>> >>>>> >>>>> >> >> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com >> >> > > From forax at univ-mlv.fr Thu Oct 17 02:04:00 2013 From: forax at univ-mlv.fr (Remi Forax) Date: Thu, 17 Oct 2013 11:04:00 +0200 Subject: Lambda syntax puzzler In-Reply-To: <525F895A.3090900@oracle.com> References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> <525E9D3E.7000209@univ-mlv.fr> <525F895A.3090900@oracle.com> Message-ID: <525FA800.3080904@univ-mlv.fr> On 10/17/2013 08:53 AM, Stuart Marks wrote: > > > On 10/16/13 7:05 AM, Remi Forax wrote: >> With the proposal of Stuart, you need to introduce a new local variable >> (array, start, end) -> { >> for(int i = start; i < end; i++) { >> ... array[i] ... >> } >> } > > Oh crap, I shouldn't have opened my big mouth. > > My statement about making formal parameters implicitly final wasn't a > proposal, nor did I intend to reopen this conversation. It was a flip > comment based on a stylistic pet peeve of mine. > > Turns out this was discussed extensively last year on lambda-dev in a > thread started by Venkat S. [1] I either missed this or had forgotten > about it. There were a fair number of people who thought it was > reasonable, but there were questions about how beneficial it would be, > plus there was the usual fractal graph of related and dependent > issues. I suggest people go reread that thread. > > Sorry for the noise. > > s'marks > > > > [1] > http://mail.openjdk.java.net/pipermail/lambda-dev/2012-December/007280.html doh, I've totally forgotten that discussion too. R?mi > > > >> >> That's said, it's not a big issue >> >> cheers, >> R?mi >> >>> >>> -----Original Message----- >>> From: lambda-dev-bounces at openjdk.java.net >>> [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Zhong Yu >>> Sent: Wednesday, October 16, 2013 2:31 PM >>> To: Stuart Marks >>> Cc: lambda-dev at openjdk.java.net >>> Subject: Re: Lambda syntax puzzler >>> >>> On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks >>> wrote: >>>> Either that, or make lambda formal parameters implicitly final. I've >>>> always >>> That is apparently a good idea with no objections; how come EG isn't >>> adopting it? what are the concerns? >>> >>>> hated code that mutated its parameters anyway. >>>> >>>> s'marks >>>> >>>> On 10/12/13 6:50 AM, Samir Talwar wrote: >>>>> :-D >>>>> >>>>> Now that traditional C-style `for` loops are a thing of the past, I >>>>> think we should expunge the increment and decrement operators from >>>>> the language. >>>>> Python had the right idea. >>>>> >>>>> ? Samir. >>>>> >>>>> >>>>> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax >>>>> wrote: >>>>> >>>>>> I'm sure that people of this list will be able to see the beauty of >>>>>> the following code produced by one of my students. >>>>>> IntPredicate p = i -> i --> 0; >>>>>> >>>>>> R?mi >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>> >>> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 >>> Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt >>> HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich >>> (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - >>> Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. >>> Andreas Bereczky - http://www.softwareag.com >>> >>> >> >> From paul.sandoz at oracle.com Thu Oct 17 02:11:54 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Thu, 17 Oct 2013 11:11:54 +0200 Subject: question about potentially compatible expression In-Reply-To: References: Message-ID: <24A042CA-3392-416E-8B01-5FB9119ADAB0@oracle.com> Hi Jon, For "class y

we don't know what the type of P is so an instance of P cannot be created by class y. Further more, even if we could, P might not be a functional interface, for example: static interface ZZ extends Z { public void q(); public void qq(); } static class YY extends y { // P == ZZ public void doit(){ ZZ zz = this::q; // Does this compile? } } For "public

void boo(P t)" then the type of P can be known since it is localized just to the method call, and in your example P is inferred to be Z (it cannot be anything else). Perhaps a clearer error message would help. Paul. On Oct 17, 2013, at 12:42 AM, "Rafkind, Jon" wrote: > In section 15.12.2.1 in JSR 335 is the following text > > A lambda expression, a method reference, or a constructor reference is potentially compatible with a type variable if the type variable is a type parameter of the candidate method. > > Why is there a restriction that the type parameter must be on the candidate method? This rules out the possibility of using a type parameter on the enclosing class as in the following code: > > public class y

{ > public void boo(P t){ > } > > public void q(){ > } > > public void doit(){ > boo(this::q); > } > } > > interface Z{ > public void q(); > } > > I get this error: > > $ javac8 y.java > y.java:9: error: incompatible types: P is not a functional interface > boo(this::q); > > But attaching 'P' to method 'boo' directly works. > > public

void boo(P t){ > } > From spullara at gmail.com Thu Oct 17 03:10:34 2013 From: spullara at gmail.com (Sam Pullara) Date: Thu, 17 Oct 2013 00:10:34 -1000 Subject: Lambda syntax puzzler In-Reply-To: <525E9D3E.7000209@univ-mlv.fr> References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> <525E9D3E.7000209@univ-mlv.fr> Message-ID: <556C5C48-79F2-4164-8DF6-90B42F16C961@gmail.com> I?m ok with this. It is trivial to do the transformation from an inner class that mutates its parameters to a lambda that doesn?t. I still would like the variable name scoping to change though at this late date I don?t expect that to happen. It is very common in the Scala code bases I have seen to reuse the outside name as the inside name, now there will be some ugly convention that adds a number or a _ or something. Sam On Oct 16, 2013, at 7:05 AM, Remi Forax wrote: > On 10/16/2013 03:43 PM, Millies, Sebastian wrote: >> Yes, I like that proposal as well. Only thing could suffer would be automatic conversion >> of inner classes to lambdas, if those class implementations mutated their parameters. >> That would not concern me. -- Sebastian > > I think that the main issue I see, is that there is no Java keyword for > saying 'not final', > so if by example you have a method that calls a lambda with the bounds > of a partition of an array, you can not write a code like this: > (array, i, end) -> { > for(; i < end; i++) { > ... array[i] ... > } > } > > With the proposal of Stuart, you need to introduce a new local variable > (array, start, end) -> { > for(int i = start; i < end; i++) { > ... array[i] ... > } > } > > That's said, it's not a big issue > > cheers, > R?mi > >> >> -----Original Message----- >> From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Zhong Yu >> Sent: Wednesday, October 16, 2013 2:31 PM >> To: Stuart Marks >> Cc: lambda-dev at openjdk.java.net >> Subject: Re: Lambda syntax puzzler >> >> On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks wrote: >>> Either that, or make lambda formal parameters implicitly final. I've >>> always >> That is apparently a good idea with no objections; how come EG isn't adopting it? what are the concerns? >> >>> hated code that mutated its parameters anyway. >>> >>> s'marks >>> >>> On 10/12/13 6:50 AM, Samir Talwar wrote: >>>> :-D >>>> >>>> Now that traditional C-style `for` loops are a thing of the past, I >>>> think we should expunge the increment and decrement operators from the language. >>>> Python had the right idea. >>>> >>>> ? Samir. >>>> >>>> >>>> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: >>>> >>>>> I'm sure that people of this list will be able to see the beauty of >>>>> the following code produced by one of my students. >>>>> IntPredicate p = i -> i --> 0; >>>>> >>>>> R?mi >>>>> >>>>> >>>>> >>>>> >>>>> >> >> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com >> >> > > From paul.sandoz at oracle.com Thu Oct 17 03:57:23 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Thu, 17 Oct 2013 12:57:23 +0200 Subject: Demo for Parallel Core Collection API In-Reply-To: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> References: <2CFB5F41-3C49-42A4-8C80-84F622C230E8@oracle.com> Message-ID: <219CF7BB-6568-44A2-834B-4832680CB760@oracle.com> Hi, I notice in some grouping by cases that it appears as if you want to stream downstream. Here is a simple example (not very interesting but it gets the point across): /** * A downstream collector that streams elements to a further downstream * collector. */ public static Collector streaming(Function> mapper, Collector downstream) { BiConsumer downstreamAccumulator = downstream.accumulator(); return Collector.of(downstream.supplier(), (r, t) -> mapper.apply(t).sequential().forEach(u -> downstreamAccumulator.accept(r, u)), downstream.combiner(), downstream.finisher(), downstream.characteristics().stream().toArray(Collector.Characteristics[]::new)); } public static void main(String[] args) throws Exception { Pattern dot = Pattern.compile("\\."); { Map m = System.getProperties().keySet().stream() .map(Object::toString) .collect(groupingBy(s -> s, streaming(dot::splitAsStream, counting()))); System.out.println(m); } { Map> m = System.getProperties().keySet().stream() .map(Object::toString) .collect(groupingBy(s -> s, streaming(dot::splitAsStream, toList()))); System.out.println(m); } } It behaves like Stream.flatMap. If that collector is useful for you, then perhaps consider adding it to your demo as an advance use of Collector. Unfortunately it is probably too late to add such a collector to the API. Paul. On Oct 14, 2013, at 5:27 PM, Paul Sandoz wrote: > Hi, > > Some high-level points first: > > - try and use static import where possible. > > - suggest that all streams are sequential. There is an inconsistency in the use and in some cases it is embedded in other stream usages. > > - "ParallelCore" is not a very descriptive name. Suggest "streams". > > - suggest moving the data classes and XML parsing code to a separate package. > > - Unfortunately Supplier is overloaded with the functional interface in j.u.function. Not sure much could be done about that. > > > More details below. I am not really commenting on the specific use-case, just the usages of the API itself, plus for brevity i have removed comments. > > > Conversion > -- > > A more compact form of mostTProductsByCategory (without comments) is: > > public static > Product[] mostTProductsByCategory( > Function func){ > Map> m = products.stream(). > collect(groupingBy(Product::getCategory, maxBy(comparing(func)))); > > return m.values().stream(). > map(Optional::get). > toArray(Product[]::new); > } > > i.e. show the Map rather than the Collector. > > > A DRYer form: > > public static Collection countries(boolean ordered) { > Stream countries = customers.stream().map(Customer::getCountry); > > if (ordered) { > return countries.distinct().collect(toCollection(LinkedList::new)); > } > else { > return countries.collect(Collectors.toSet()); > > } > } > > Shame that the type witness is required. For sequential streams is probably no advantage here to providing a link list over a list except for API educational value. > > > Elements > -- > > > Simpler form. The function to apply the terminal op obfuscates: > > public static Optional suppliersInCountry(boolean findAny, > String country) { > Stream s = suppliers.stream(). > //filter supplier who is same sa given country > filter(supplier -> country. > equals(supplier.getCountry())); > > return findAny ? s.findAny() : s.findFirst(); > } > > > The use of the collector is complicating matters. Off the top of my head what you require is a reducer that reduces to the first product whose stock units is > 0: > > public static Map inStockProductsByCategory( > boolean findAny) { > BinaryOperator reduceToFirstMatch = (l, r) -> (l != null) > ? l : (r != null && r.getUnitsInStock() > 0) > ? r : null; > return products.stream().collect( > groupingBy(Product::getCategory, > reducing(null, reduceToFirstMatch))); > > } > > The above relies on the associativity of the binary operator. There is no need to collect into a filtered list then stream with findAny/findFirst since we can reduce to the result as each element is received. That reduceToFirstMatch can easily be abstracted into a higher order function taking a predicate > > > Grouping > -- > > public static Map> groupOrdersByCustomer() { > //a collector that generate a order list from a customer > Collector, List> collectOrder = Collector. > of(ArrayList::new, > (orders, customer) -> { orders.addAll(customer.getOrders()); }, > (left, right) -> { left.addAll(right); return left; }); > return customers.parallelStream(). > //convert customers to a Map which key is it name, value is its > //orders > collect(Collectors. > groupingBy(Customer::getCompanyName, > collectOrder)); > } > > Not clear to me if there are multiple customers with the same name so the catamorphic collect may not be necessary and toMap can be used instead. Perhaps there is another way to show this collect usage? > > > Can simplify: > > public static > Map> > productMaxByTGroupByS(boolean maxBy, Function groupFunc, > Function compFunc){ > //Comparator of Product which will compare on T by given function > Comparator comp = Comparator.comparing(compFunc); > > return products.stream(). > //collect products into a Map, which key is S by function of > //groupFunc, value is max or min by given max and function of > //compFunc > collect(groupingBy( > groupFunc, > maxBy ? maxBy(comp) : minBy(comp))); > } > > > Simplify: > > public static Map>> ordersByRThenT( > Function func1,Function func2){ > return customers.stream(). > //map every customer to orders > flatMap(customer -> customer.getOrders().stream()). > //group products to Map by given two functions > collect(groupingBy(func1, groupingBy(func2))); > } > > > Selection > -- > > public static Map bigOrderCustomers(double bigValue) { > Function orderTotal = > c -> c.getOrders().stream(). > //map order to order price > mapToDouble(Order::getTotal). > //calculate total price > sum(); > //A predicate which filter customer whose total order price is greater > //than bigValue > Predicate bigOrder = c -> orderTotal.apply(c) >= bigValue; > return customers.parallelStream(). > //filter customer whose total order price is greater than bigValue > filter(bigOrder). > //grouping customer to a Map which key is customer, value is > //total order price > collect( Collectors.toMap(Function.identity(), > orderTotal)); > } > > This is essentially performing the sum twice on each element that passes through the filter. > > Unfortunately we don't have tuples yet and that is what i think you really need to retain the calculation for use later on. > > It might be simpler just to create a Map then iterate over entries and remove ones that do not match. > > > Subset > -- > > public static List firstNOrdersFromState(int number, > String state, Consumer action){ > return customers.parallelStream(). > //only take customers from a particular state > filter(c -> state.equals(c.getRegion())). > //get orders of those customers > flatMap(c -> c.getOrders().stream()). > //get first number of orders > substream(0, number). > //apply the supplied action > peek(action). > //collect to a list > collect(Collectors.toList()); > } > > Replace substream(0, number) with limit(number). > > The use of peek here is setting a bad precedent, suggest changing to return void and using forEach or removing it. Same applies for topNCustomer. > > > Tabulate > -- > > This is another example of where tuples or MapStream (a stream for a tuple of 2 elements) could be useful. > > It would be good to remove the Pair class if at all possible, if not it is best if containing within Tabulate as this is the only place that uses it. > > > For sameCountryCustomerAndSuppliers, off the top of my head, it is possible to reformulate using two Maps and we do not need Pair: > > Map> countryToSuppliers = suppliers.stream().collect( > // group suppliers by their country > Collectors.groupingBy(Supplier::getCountry)); > > Map> s = customers.stream().collect( > Collectors.toMap(Function::identity, > c -> countryToSuppliers.getOrDefault(c.getCountry(), null))); > > > Simplify: > > public static Set bothCustomerAndSupplier() { > Set suppliersName = suppliers.stream(). > map(Supplier::getSupplierName). > collect(toSet()); > > return customers.stream(). > map(Customer::getCompanyName). > flatMap(c -> suppliersName.contains(c) ? Stream.of(c) : Stream.empty()). > collect(toSet()); > } > > > > Hth, > Paul. > > On Oct 14, 2013, at 5:27 AM, Tristan Yan wrote: > >> Hi all >> >> >> >> Could you please help to review the demo code for parallel core collection API? >> >> http://cr.openjdk.java.net/~pzhang/Tristan/8023555/webrev/ >> >> >> >> Thank you very much >> >> >> >> >> >> Tristan Yan(Haibo Yan) >> >> Office : 8610-61066212 >> >> Fax : 8610-61065441 >> >> Cell : 86-18610696822 >> >> >> >> 2F, Building No. 24, Zhongguancun Software Park >> >> Haidian District HYPERLINK "http://people.us.oracle.com/pls/oracle/f?p=8000:6:396067987304343:::6:P6_CITY:Beijing"Beijing , 100193 >> >> oracle >> >> >> > > From howard.lovatt at gmail.com Thu Oct 17 12:20:59 2013 From: howard.lovatt at gmail.com (Howard Lovatt) Date: Fri, 18 Oct 2013 06:20:59 +1100 Subject: Lambda syntax puzzler In-Reply-To: <525FA800.3080904@univ-mlv.fr> References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> <525E9D3E.7000209@univ-mlv.fr> <525F895A.3090900@oracle.com> <525FA800.3080904@univ-mlv.fr> Message-ID: However the discussion wasn't really resolved, it just petered out. I still think it would be a good idea to make inferred parameters final and if people want mutable they have to declare the type. Because mutable that is not a mistake is a very rare case and therefore rarely used syntax is a good fit for this. -- Howard. On Thursday, October 17, 2013, Remi Forax wrote: > On 10/17/2013 08:53 AM, Stuart Marks wrote: > > > > > > On 10/16/13 7:05 AM, Remi Forax wrote: > >> With the proposal of Stuart, you need to introduce a new local variable > >> (array, start, end) -> { > >> for(int i = start; i < end; i++) { > >> ... array[i] ... > >> } > >> } > > > > Oh crap, I shouldn't have opened my big mouth. > > > > My statement about making formal parameters implicitly final wasn't a > > proposal, nor did I intend to reopen this conversation. It was a flip > > comment based on a stylistic pet peeve of mine. > > > > Turns out this was discussed extensively last year on lambda-dev in a > > thread started by Venkat S. [1] I either missed this or had forgotten > > about it. There were a fair number of people who thought it was > > reasonable, but there were questions about how beneficial it would be, > > plus there was the usual fractal graph of related and dependent > > issues. I suggest people go reread that thread. > > > > Sorry for the noise. > > > > s'marks > > > > > > > > [1] > > > http://mail.openjdk.java.net/pipermail/lambda-dev/2012-December/007280.html > > > doh, > I've totally forgotten that discussion too. > > R?mi > > > > > > > > >> > >> That's said, it's not a big issue > >> > >> cheers, > >> R?mi > >> > >>> > >>> -----Original Message----- > >>> From: lambda-dev-bounces at openjdk.java.net > >>> [mailto:lambda-dev-bounces at openjdk.java.net ] On Behalf > Of Zhong Yu > >>> Sent: Wednesday, October 16, 2013 2:31 PM > >>> To: Stuart Marks > >>> Cc: lambda-dev at openjdk.java.net > >>> Subject: Re: Lambda syntax puzzler > >>> > >>> On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks > >>> > wrote: > >>>> Either that, or make lambda formal parameters implicitly final. I've > >>>> always > >>> That is apparently a good idea with no objections; how come EG isn't > >>> adopting it? what are the concerns? > >>> > >>>> hated code that mutated its parameters anyway. > >>>> > >>>> s'marks > >>>> > >>>> On 10/12/13 6:50 AM, Samir Talwar wrote: > >>>>> :-D > >>>>> > >>>>> Now that traditional C-style `for` loops are a thing of the past, I > >>>>> think we should expunge the increment and decrement operators from > >>>>> the language. > >>>>> Python had the right idea. > >>>>> > >>>>> ? Samir. > >>>>> > >>>>> > >>>>> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax > > > >>>>> wrote: > >>>>> > >>>>>> I'm sure that people of this list will be able to see the beauty of > >>>>>> the following code produced by one of my students. > >>>>>> IntPredicate p = i -> i --> 0; > >>>>>> > >>>>>> R?mi > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>> > >>> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 > >>> Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt > >>> HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich > >>> (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - > >>> Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. > >>> Andreas Bereczky - http://www.softwareag.com > >>> > >>> > >> > >> > > > -- -- Howard. From forax at univ-mlv.fr Thu Oct 17 13:28:01 2013 From: forax at univ-mlv.fr (Remi Forax) Date: Thu, 17 Oct 2013 22:28:01 +0200 Subject: Lambda syntax puzzler In-Reply-To: <556C5C48-79F2-4164-8DF6-90B42F16C961@gmail.com> References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> <525E9D3E.7000209@univ-mlv.fr> <556C5C48-79F2-4164-8DF6-90B42F16C961@gmail.com> Message-ID: <52604851.2070500@univ-mlv.fr> On 10/17/2013 12:10 PM, Sam Pullara wrote: > I?m ok with this. It is trivial to do the transformation from an inner class that mutates its parameters to a lambda that doesn?t. > > I still would like the variable name scoping to change though at this late date I don?t expect that to happen. It is very common in the Scala code bases I have seen to reuse the outside name as the inside name, now there will be some ugly convention that adds a number or a _ or something. yes, I agree, it's very painful. I fail to convince the other EG members that it was an important issue during the latest face to face meeting. I still hope that when people will start using new APIs that massively use lambdas, this rule will be removed. > > Sam R?mi > > On Oct 16, 2013, at 7:05 AM, Remi Forax wrote: > >> On 10/16/2013 03:43 PM, Millies, Sebastian wrote: >>> Yes, I like that proposal as well. Only thing could suffer would be automatic conversion >>> of inner classes to lambdas, if those class implementations mutated their parameters. >>> That would not concern me. -- Sebastian >> I think that the main issue I see, is that there is no Java keyword for >> saying 'not final', >> so if by example you have a method that calls a lambda with the bounds >> of a partition of an array, you can not write a code like this: >> (array, i, end) -> { >> for(; i < end; i++) { >> ... array[i] ... >> } >> } >> >> With the proposal of Stuart, you need to introduce a new local variable >> (array, start, end) -> { >> for(int i = start; i < end; i++) { >> ... array[i] ... >> } >> } >> >> That's said, it's not a big issue >> >> cheers, >> R?mi >> >>> -----Original Message----- >>> From: lambda-dev-bounces at openjdk.java.net [mailto:lambda-dev-bounces at openjdk.java.net] On Behalf Of Zhong Yu >>> Sent: Wednesday, October 16, 2013 2:31 PM >>> To: Stuart Marks >>> Cc: lambda-dev at openjdk.java.net >>> Subject: Re: Lambda syntax puzzler >>> >>> On Tue, Oct 15, 2013 at 1:34 PM, Stuart Marks wrote: >>>> Either that, or make lambda formal parameters implicitly final. I've >>>> always >>> That is apparently a good idea with no objections; how come EG isn't adopting it? what are the concerns? >>> >>>> hated code that mutated its parameters anyway. >>>> >>>> s'marks >>>> >>>> On 10/12/13 6:50 AM, Samir Talwar wrote: >>>>> :-D >>>>> >>>>> Now that traditional C-style `for` loops are a thing of the past, I >>>>> think we should expunge the increment and decrement operators from the language. >>>>> Python had the right idea. >>>>> >>>>> ? Samir. >>>>> >>>>> >>>>> On Sat, Oct 12, 2013 at 1:27 PM, Remi Forax wrote: >>>>> >>>>>> I'm sure that people of this list will be able to see the beauty of >>>>>> the following code produced by one of my students. >>>>>> IntPredicate p = i -> i --> 0; >>>>>> >>>>>> R?mi >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>> Software AG ? Sitz/Registered office: Uhlandstra?e 12, 64297 Darmstadt, Germany ? Registergericht/Commercial register: Darmstadt HRB 1562 - Vorstand/Management Board: Karl-Heinz Streibich (Vorsitzender/Chairman), Dr. Wolfram Jost, Arnd Zinnhardt; - Aufsichtsratsvorsitzender/Chairman of the Supervisory Board: Dr. Andreas Bereczky - http://www.softwareag.com >>> >>> >> From jon.rafkind at hp.com Thu Oct 17 16:01:28 2013 From: jon.rafkind at hp.com (Rafkind, Jon) Date: Thu, 17 Oct 2013 23:01:28 +0000 Subject: question about potentially compatible expression References: <24A042CA-3392-416E-8B01-5FB9119ADAB0@oracle.com> Message-ID: Ok I guess the reasoning is that type checking on method arguments is performed at the call-site and there cannot be any unstantiated type variables at that point. class x{ void bar(M m){ } } Here, M is unresolved in bar, but the class can still be separately compiled. When x is instantiated with a real type, the body of x is not revisited to see if M is compatible. The type system ensures that x can only be compiled if the bounds of M were compatible with the body. Whereas for a method the arguments of the call site are checked for compatibility with the types of the parameters. public void bar(R r){ } bar(this::q); // ok. R inferred to be exactly Z This can fail to compile if R is explicitly instantiated as something other than a functional interface. interface ZZ extends Z{ public void a(); public void b(); } this.bar(this::q); q.java: error ZZ is not a functional interface The same reasoning shows why the 'R' type variable cannot be used inside the method to declare a functional interface variable. public void bar(){ R r = this::q; } q.java: R is not a functional interface I suppose these cases would be allowed if the bodies of classes and methods were retyped when all type variables are instantiated, but that is impossible in the face of separate compilation and .class files (where some information is lost). On 10/17/2013 02:13 AM, Paul Sandoz wrote: > Hi Jon, > > For "class y

we don't know what the type of P is so an instance of P cannot be created by class y. Further more, even if we could, P might not be a functional interface, for example: > > static interface ZZ extends Z { > public void q(); > public void qq(); > } > > static class YY extends y { // P == ZZ > public void doit(){ > ZZ zz = this::q; // Does this compile? > } > } > > For "public

void boo(P t)" then the type of P can be known since it is localized just to the method call, and in your example P is inferred to be Z (it cannot be anything else). > > Perhaps a clearer error message would help. > > Paul. > > On Oct 17, 2013, at 12:42 AM, "Rafkind, Jon" wrote: > >> In section 15.12.2.1 in JSR 335 is the following text >> >> A lambda expression, a method reference, or a constructor reference is potentially compatible with a type variable if the type variable is a type parameter of the candidate method. >> >> Why is there a restriction that the type parameter must be on the candidate method? This rules out the possibility of using a type parameter on the enclosing class as in the following code: >> >> public class y

{ >> public void boo(P t){ >> } >> >> public void q(){ >> } >> >> public void doit(){ >> boo(this::q); >> } >> } >> >> interface Z{ >> public void q(); >> } >> >> I get this error: >> >> $ javac8 y.java >> y.java:9: error: incompatible types: P is not a functional interface >> boo(this::q); >> >> But attaching 'P' to method 'boo' directly works. >> >> public

void boo(P t){ >> } >> From grundlefleck at gmail.com Sat Oct 19 04:54:47 2013 From: grundlefleck at gmail.com (Graham Allan) Date: Sat, 19 Oct 2013 12:54:47 +0100 Subject: Open source project to learn JDK 8 features. Message-ID: Hey all, As part of the LJC's AdoptOpenJDK program, I have created an open source project to serve as a tutorial on new JDK 8 features: https://github.com/adoptopenjdk/lambda-tutorial The tutorial is structured as a series of failing JUnit tests, which should be made to pass by using the new language and library features. Currently there are four 'chapters': 1. Internal vs External Iteration (the forEach method) 2. Filtering and Collecting 3. Mapping 4. Method References With more planned. The target audience is Java developers with little to no experience of basic 'functional' concepts. It would be great to get some feedback or suggestions, and also share the link with anyone who is looking to try out the new shiny goodies in JDK 8. I am also keen for the suggested 'answers' to be examples of recommended best practice, so that I don't encourage gross misuse of the new features. Any and all feedback welcome! Best regards, Graham Allan From brian.goetz at oracle.com Sat Oct 19 17:55:13 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Sat, 19 Oct 2013 20:55:13 -0400 Subject: Survey on Java erasure/reification Message-ID: <526329F1.7060706@oracle.com> I've created a survey about people's attitudes towards erasure and reification. If you participate, please take the time to answer the free-response question; that's really what is going to help us. Survey here: https://www.surveymonkey.com/s/SCJC93R From paul.sandoz at oracle.com Mon Oct 21 08:37:21 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 21 Oct 2013 17:37:21 +0200 Subject: RFR: 8025909: Lambda Library Spec Updates In-Reply-To: <525DC308.9010803@oracle.com> References: <525DC308.9010803@oracle.com> Message-ID: <5AEFCB8E-A620-421E-A8EB-79BFE99F3C2D@oracle.com> Hi Henry, Collector: Typo in multiple places: that accumulate elements -> that accumulates elements Otherwise looks good. Paul. On Oct 16, 2013, at 12:34 AM, Henry Jen wrote: > Hi, > > Please kindly review the latest update on lambda library spec, and a few > minor code clean up. > > Webrev and specdiff can be found at, > > http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/webrev > http://cr.openjdk.java.net/~henryjen/ccc/8025909/0/specdiff > > This webrev also covers update that address JDK-8024179 as the spec > update explains why reported scenario is expected. > > Cheers, > Henry > From henry.jen at oracle.com Mon Oct 21 20:24:02 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Tue, 22 Oct 2013 03:24:02 +0000 Subject: hg: lambda/lambda/jdk: 2 new changesets Message-ID: <20131022032452.A9C59625DB@hg.openjdk.java.net> Changeset: f304f1566275 Author: henryjen Date: 2013-10-16 21:45 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f304f1566275 add missing @since 1.8 tag ! src/share/classes/java/util/Map.java Changeset: 80d03b44d720 Author: henryjen Date: 2013-10-21 20:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/80d03b44d720 Fix typo ! src/share/classes/java/util/stream/Collectors.java From henry.jen at oracle.com Tue Oct 22 09:41:36 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Tue, 22 Oct 2013 16:41:36 +0000 Subject: hg: lambda/lambda/jdk: Remove ordering constraint on forEach Message-ID: <20131022164301.962516262C@hg.openjdk.java.net> Changeset: b62636f187ce Author: henryjen Date: 2013-10-22 09:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b62636f187ce Remove ordering constraint on forEach ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/util/List.java ! src/share/classes/java/util/Map.java From henry.jen at oracle.com Tue Oct 22 10:32:19 2013 From: henry.jen at oracle.com (Henry Jen) Date: Tue, 22 Oct 2013 10:32:19 -0700 Subject: RFR(2nd): 8025909: Lambda Library Spec Updates Message-ID: <5266B6A3.20806@oracle.com> Hi, Please review the updated revision at http://cr.openjdk.java.net/~henryjen/ccc/8025909/1/webrev - Rewording {Iterable|Map}::forEach from ordering constraint so that implementation class is allowed to process in parallel ignoring the order. - fixed typo in Collector as Paul pointed out Cheers, Henry From jon.rafkind at hp.com Tue Oct 22 11:10:34 2013 From: jon.rafkind at hp.com (Rafkind, Jon) Date: Tue, 22 Oct 2013 18:10:34 +0000 Subject: clarification note for 18.1 Message-ID: It would be helpful if section 18.1 of JSR 335 to give examples for each of the meta variables. Specifically, I was confused about what 'S' was. I finally figured out it is either a proper type or a type variable that can contain inference variables. Where 'a' is an inference variable (alpha), S can be Integer List List But not a And I assume this is not even possible a From mike.duigou at oracle.com Tue Oct 22 13:45:18 2013 From: mike.duigou at oracle.com (Mike Duigou) Date: Tue, 22 Oct 2013 13:45:18 -0700 Subject: RFR(2nd): 8025909: Lambda Library Spec Updates In-Reply-To: <5266B6A3.20806@oracle.com> References: <5266B6A3.20806@oracle.com> Message-ID: <92ECD1DA-A8FF-496B-8655-289A01FF91FD@oracle.com> Looks fine. Two non-blocking nits: LambdaMetaFactory: (-0) : period at the end of @param (-0) : FLAG_SERIALIZABLE should be in {@code} On Oct 22 2013, at 10:32 , Henry Jen wrote: > Hi, > > Please review the updated revision at > http://cr.openjdk.java.net/~henryjen/ccc/8025909/1/webrev > > - Rewording {Iterable|Map}::forEach from ordering constraint so that > implementation class is allowed to process in parallel ignoring the order. > - fixed typo in Collector as Paul pointed out > > Cheers, > Henry From henry.jen at oracle.com Tue Oct 22 15:13:42 2013 From: henry.jen at oracle.com (Henry Jen) Date: Tue, 22 Oct 2013 15:13:42 -0700 Subject: RFR(2nd): 8025909: Lambda Library Spec Updates In-Reply-To: <92ECD1DA-A8FF-496B-8655-289A01FF91FD@oracle.com> References: <5266B6A3.20806@oracle.com> <92ECD1DA-A8FF-496B-8655-289A01FF91FD@oracle.com> Message-ID: Thanks, will fix them for the commit. Cheers, Henry On Oct 22, 2013, at 1:45 PM, Mike Duigou wrote: > Looks fine. Two non-blocking nits: > > LambdaMetaFactory: > > (-0) : period at the end of @param > > (-0) : FLAG_SERIALIZABLE should be in {@code} > > > On Oct 22 2013, at 10:32 , Henry Jen wrote: > >> Hi, >> >> Please review the updated revision at >> http://cr.openjdk.java.net/~henryjen/ccc/8025909/1/webrev >> >> - Rewording {Iterable|Map}::forEach from ordering constraint so that >> implementation class is allowed to process in parallel ignoring the order. >> - fixed typo in Collector as Paul pointed out >> >> Cheers, >> Henry > From henry.jen at oracle.com Tue Oct 22 15:04:04 2013 From: henry.jen at oracle.com (henry.jen at oracle.com) Date: Tue, 22 Oct 2013 22:04:04 +0000 Subject: hg: lambda/lambda/jdk: javadoc nit Message-ID: <20131022220527.A0FFF62649@hg.openjdk.java.net> Changeset: b55f1ce224fb Author: henryjen Date: 2013-10-22 15:00 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b55f1ce224fb javadoc nit ! src/share/classes/java/lang/invoke/LambdaMetafactory.java From kon at outrospective.org Tue Oct 22 23:58:50 2013 From: kon at outrospective.org (Kon Soulianidis) Date: Wed, 23 Oct 2013 17:58:50 +1100 Subject: Open source project to learn JDK 8 features. In-Reply-To: References: Message-ID: <1B5E5ECB-3D20-4387-ABF5-8D265C6E0F72@outrospective.org> Hi Graham At the next MelbJVM meetup (http://www.meetup.com/Melbourne-Java-JVM-Users-Group/events/140852482/) we are going to do a Lambda workshop. This is based on the Lambda programming lab given at JavaOne by Stuart Marks, Simon Ritter, Angela Caceido and Maurice Naufalin. http://stuartmarks.wordpress.com/2013/09/22/javaone-2013-has-begun I'll also take a look at yours and see what we can incorporate. Thank you for sharing. Kon On 19/10/2013, at 10:54 PM, Graham Allan wrote: > Hey all, > > As part of the LJC's AdoptOpenJDK program, I have created an open source > project to serve as a tutorial on new JDK 8 features: > > https://github.com/adoptopenjdk/lambda-tutorial > > The tutorial is structured as a series of failing JUnit tests, which should > be made to pass by using the new language and library features. Currently > there are four 'chapters': > > 1. Internal vs External Iteration (the forEach method) > 2. Filtering and Collecting > 3. Mapping > 4. Method References > > With more planned. The target audience is Java developers with little to no > experience of basic 'functional' concepts. > > It would be great to get some feedback or suggestions, and also share the > link with anyone who is looking to try out the new shiny goodies in JDK 8. > I am also keen for the suggested 'answers' to be examples of recommended > best practice, so that I don't encourage gross misuse of the new features. > > Any and all feedback welcome! > > Best regards, > Graham Allan > From brian.goetz at oracle.com Wed Oct 23 12:16:33 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Wed, 23 Oct 2013 15:16:33 -0400 Subject: RFR: update to lambda metafactory spec Message-ID: <52682091.9030209@oracle.com> This webrev: http://cr.openjdk.java.net/~briangoetz/JDK-8019646/webrev/ contains minor changes to the lambda metafactory implementation, and a significant overhaul of its specification. There are only two behavioral changes, the rest of the changes are in exposition: - Metafactory no longer leaks ReflectiveOperationException - Alternate metafactory no longer infers serializability from presence of serializable supertype; requires FLAG_SERIALIZABLE. This makes alternate metafacory a pure generalization of the fast-path metafactory. From jon.rafkind at hp.com Wed Oct 23 16:22:57 2013 From: jon.rafkind at hp.com (Rafkind, Jon) Date: Wed, 23 Oct 2013 23:22:57 +0000 Subject: jsr 335 - type inference sections Message-ID: Is there a newer version of JSR 335 that has the sections with a TODO in them filled out? Specifically these sections don't have any content in them: 18.2.3 Subtyping Constraints [New] 18.2.3 Subtyping Constraints [New] 18.3 Incorporation [New] 18.4 Resolution [New] From jon.rafkind at hp.com Wed Oct 23 16:41:32 2013 From: jon.rafkind at hp.com (Rafkind, Jon) Date: Wed, 23 Oct 2013 23:41:32 +0000 Subject: jsr 335 - type inference sections References: Message-ID: On 10/23/2013 04:26 PM, Rafkind, Jon wrote: > Is there a newer version of JSR 335 that has the sections with a TODO in them filled out? Specifically these sections don't have any content in them: > 18.2.3 Subtyping Constraints [New] > > 18.2.3 Subtyping Constraints [New] > > 18.3 Incorporation [New] > > 18.4 Resolution [New] > > Ah, I found version 0.6.3! http://cr.openjdk.java.net/~dlsmith/jsr335-0.6.3.html This is hard to find, a naive search for 'jsr 335' leads to a few places that link to 0.6.1. Eventually I found http://cr.openjdk.java.net/~dlsmith/jsr335-0.6.1.html and by going back to just the home directory '~dlsmith' I found a directory listing with 0.6.3 in it. Probably http://jcp.org/en/jsr/detail?id=335 should be updated with 0.6.3 as the latest 'Early Draft Review 3' points to 0.6.1. From vicente.romero at oracle.com Thu Oct 24 13:07:46 2013 From: vicente.romero at oracle.com (Vicente-Arturo Romero-Zaldivar) Date: Thu, 24 Oct 2013 21:07:46 +0100 Subject: lambda bugs solved In-Reply-To: References: <5259402F.5090805@univ-mlv.fr> <525CD3F6.5030303@oracle.com> <32F15738E8E5524DA4F01A0FA4A8E490C2FD6E08@HQMBX5.eur.ad.sag> <525E9D3E.7000209@univ-mlv.fr> Message-ID: <52697E12.3010107@oracle.com> Hi Zhong Yu, The bugs: 8025290: javac implicit versus explicit lambda compilation error [1] 8024809: javac, some lambda programs are rejected by flow analysis [2] reported by you in this list have been fixed and pushed to TL. Thanks a lot for your help on the early detection of lambda bugs. Also thanks to everyone that has commented about these and other bugs or reports. Vicente. [1] https://bugs.openjdk.java.net/browse/JDK-8025290 [2] https://bugs.openjdk.java.net/browse/JDK-8024809 From richard.warburton at gmail.com Fri Oct 25 15:49:03 2013 From: richard.warburton at gmail.com (Richard Warburton) Date: Fri, 25 Oct 2013 23:49:03 +0100 Subject: Idiomatic Windowing on Streams Message-ID: Hi, Sometimes its useful to be able to operate on a time-window over a stream of data with a defined encounter order. So for an element at index i, I want to perform an operation on a stream of that element and the next n elements. The most trivial example I can think of is a simple moving average of data points. I'm currently struggling to find a way to idiomatically express this in the Streams framework. My current best effort is to take a stream of indices and map those indices to a substream of my original stream of data and I can then do some reduction over those elements. So here's an SMA for example: double[] means = IntStream.range(0, numbers.size() - N) .mapToDouble(i -> numbers.stream() .substream(i, i + N) .mapToInt(x -> x) .average() .getAsDouble()) .toArray(); Is there a better approach than this? regards, Dr. Richard Warburton http://insightfullogic.com @RichardWarburto From stuart.marks at oracle.com Fri Oct 25 21:34:07 2013 From: stuart.marks at oracle.com (Stuart Marks) Date: Fri, 25 Oct 2013 21:34:07 -0700 Subject: Idiomatic Windowing on Streams In-Reply-To: References: Message-ID: <526B463F.3000506@oracle.com> On 10/25/13 3:49 PM, Richard Warburton wrote: > Sometimes its useful to be able to operate on a time-window over a stream > of data with a defined encounter order. So for an element at index i, I > want to perform an operation on a stream of that element and the next n > elements. The most trivial example I can think of is a simple moving > average of data points. > > I'm currently struggling to find a way to idiomatically express this in the > Streams framework. My current best effort is to take a stream of indices > and map those indices to a substream of my original stream of data and I > can then do some reduction over those elements. So here's an SMA for > example: Yeah, this is hard with the current streams framework. The problem is that streams aren't indexed, so stream operations can't reference their neighbors, nor can they find the "current" position in order to try to pull particular values out of the source data. > double[] means = > IntStream.range(0, numbers.size() - N) > .mapToDouble(i -> > numbers.stream() > .substream(i, i + N) > .mapToInt(x -> x) > .average() > .getAsDouble()) > .toArray(); Driving the stream using indexes helps in some cases, as you've done here, so the stream contains positions instead of the values from the source. Of course, this depends on having random access to the source. Unfortunately doing a moving average this way ends up performing a lot of redundant operations. Each time the window moves it does a complete sum of all the values in the window, instead of adding in the value entering the window and subtracting off the value leaving the window. I think what you really want is something like vector operations. Java 8 has some new array-based stuff that does parallel vector operations. A key operation is prefix sum, which for each element, computes the running sum (or whatever) of all elements up to and including this one. A moving sum is the prefix sum vector shifted by the window size, minus the original prefix sum vector. Finally you divide this vector by the window size to get the moving average. Thus: // assume that input is: int[] numbers int[] sums = Arrays.copyOf(numbers, numbers.length); Arrays.parallelPrefix(sums, Integer::sum); int[] movsums = Arrays.copyOfRange(sums, N, sums.length); Arrays.parallelSetAll(movsums, i -> movsums[i] - sums[i]); double[] means = new double[movsums.length]; Arrays.parallelSetAll(means, i -> (double)movsums[i] / N); Unfortunately these operations are done in-place so we have to do some copying. Not as elegant as the streams API. Note that my code snippet omits the first moving average instead of the last one, as in your example. Finally, you have to watch out for overflow, since the last element of the sums array will be the sum of all elements in the input array. It would be nice if there were a way to use a prefix operation to do the running sum and subtract off the element leaving the window, but I wasn't able to figure out how to do that. s'marks > Is there a better approach than this? > > regards, > > Dr. Richard Warburton > > http://insightfullogic.com > @RichardWarburto > From stuart.marks at oracle.com Fri Oct 25 22:45:50 2013 From: stuart.marks at oracle.com (Stuart Marks) Date: Fri, 25 Oct 2013 22:45:50 -0700 Subject: Idiomatic Windowing on Streams In-Reply-To: <526B463F.3000506@oracle.com> References: <526B463F.3000506@oracle.com> Message-ID: <526B570E.6020603@oracle.com> On 10/25/13 9:34 PM, Stuart Marks wrote: > int[] sums = Arrays.copyOf(numbers, numbers.length); > Arrays.parallelPrefix(sums, Integer::sum); > int[] movsums = Arrays.copyOfRange(sums, N, sums.length); > Arrays.parallelSetAll(movsums, i -> movsums[i] - sums[i]); > double[] means = new double[movsums.length]; > Arrays.parallelSetAll(means, i -> (double)movsums[i] / N); > > Note that my code snippet omits the first moving average instead of the last > one, as in your example. > > Finally, you have to watch out for overflow, since the last element of the sums > array will be the sum of all elements in the input array. It would be nice if > there were a way to use a prefix operation to do the running sum and subtract > off the element leaving the window, but I wasn't able to figure out how to do that. Of course, right after I posted this I figured out how to do that. :-) The trick is, from each element i, to first subtract off the (i-N)th element, and then to do the prefix sum. This gives the moving averages in-place. As a bonus, it saves a copy operation, and as another bonus, it computes all length-N+1 moving averages. int[] temp = Arrays.copyOf(numbers, numbers.length); Arrays.parallelSetAll(temp, i -> temp[i] - ((i < N) ? 0 : numbers[i - N])); Arrays.parallelPrefix(temp, Integer::sum); double[] means = new double[numbers.length]; Arrays.parallelSetAll(means, i -> (double)temp[i] / N); Elements [0..N-2] of the means array are garbage, but the remaining elements are the moving averages. I have a feeling I just reinvented something FORTRAN programmers knew about in the 1960s. s'marks From Sebastian.Zarnekow at itemis.de Sat Oct 26 04:03:52 2013 From: Sebastian.Zarnekow at itemis.de (Sebastian Zarnekow) Date: Sat, 26 Oct 2013 13:03:52 +0200 Subject: Performance regression with IntStream.parallel.sum? Message-ID: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> Hi, I think I stumbled on some performance regression in b112. Please consider this simple code: public class C { public int parallelSum(final int reps) { IntStream stream = Arrays.stream(array).parallel().map(e -> e * 5 * reps ); int result += stream.sum(); return result; } C() { this.length = 2; setUp(); parallelSum(5); } private int[] array; private int length; protected void setUp() { array = new int[length]; for(int i = 0; i < length; i++) { array[i] = 3 * i; } } public static void main(String[] args) { new C(); } } which was extracted from some Caliper benchmark code. The benchmark results (code: https://gist.github.com/szarnekow/7168147) are here (produced with build 1.8.0-ea-b112): https://microbenchmarks.appspot.com/runs/a0579577-2df9-4894-9b19-ac345f78b020#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length whereas the following results were produced with an earlier build (1.8.0-ea-b92) https://microbenchmarks.appspot.com/runs/220a5db5-434c-43f3-9cd9-93ef869d51e8#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length Initially thought it can be tracked down to java.util.stream.IntPipeline#reduce(int, java.util.function.IntBinaryOperator) which ultimately causes boxing / unboxing in ReduceOps.makeInt.ReducingSink.get() but the benchmark results for a sequential stream contradicted that. Also it turned out that #get is only called once in the parallel scenario, too. So here I was on the wrong track. Is there some other information that I could provide to track this regression down? Should the code be written differently? Best regards, Sebastian From paul.sandoz at oracle.com Sun Oct 27 06:51:47 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Sun, 27 Oct 2013 14:51:47 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> Message-ID: Hi Sebastian, The code you have looks fine, but i am not familiar with Caliper. I presume the magnitude of those grey bars represents variance? It's hard to know what might cause such a regression, especially when N is large (> 10^4) which should factor out the costs of going parallel, implying it could be something deeper in the stack. You have noted correctly that there should be no per-element boxing cost (just one box/unbox for the result) I would need to run this myself to investigate. There is an outlier for SequentialSumJava8, 1000000 1.8.0-ea-b92 that makes me suspicious. Paul. On Oct 26, 2013, at 1:03 PM, Sebastian Zarnekow wrote: > Hi, > > I think I stumbled on some performance regression in b112. Please consider this simple code: > > public class C { > > public int parallelSum(final int reps) { > IntStream stream = Arrays.stream(array).parallel().map(e -> > e * 5 * reps > ); > int result += stream.sum(); > return result; > } > > C() { > this.length = 2; > setUp(); > parallelSum(5); > } > > private int[] array; > private int length; > > protected void setUp() { > array = new int[length]; > for(int i = 0; i < length; i++) { > array[i] = 3 * i; > } > } > > public static void main(String[] args) { > new C(); > } > } > > which was extracted from some Caliper benchmark code. The benchmark results (code: https://gist.github.com/szarnekow/7168147) are here (produced with build 1.8.0-ea-b112): > > https://microbenchmarks.appspot.com/runs/a0579577-2df9-4894-9b19-ac345f78b020#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length > > whereas the following results were produced with an earlier build (1.8.0-ea-b92) > > https://microbenchmarks.appspot.com/runs/220a5db5-434c-43f3-9cd9-93ef869d51e8#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length > > Initially thought it can be tracked down to java.util.stream.IntPipeline#reduce(int, java.util.function.IntBinaryOperator) which ultimately causes boxing / unboxing in ReduceOps.makeInt.ReducingSink.get() but the benchmark results for a sequential stream contradicted that. Also it turned out that #get is only called once in the parallel scenario, too. So here I was on the wrong track. Is there some other information that I could provide to track this regression down? Should the code be written differently? > > Best regards, > Sebastian > > From paul.sandoz at oracle.com Sun Oct 27 07:38:32 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Sun, 27 Oct 2013 15:38:32 +0100 Subject: Idiomatic Windowing on Streams In-Reply-To: <526B570E.6020603@oracle.com> References: <526B463F.3000506@oracle.com> <526B570E.6020603@oracle.com> Message-ID: <7E28A7E7-D33A-4D22-B39A-BE289775E3B3@oracle.com> On Oct 26, 2013, at 7:45 AM, Stuart Marks wrote: > On 10/25/13 9:34 PM, Stuart Marks wrote: >> int[] sums = Arrays.copyOf(numbers, numbers.length); >> Arrays.parallelPrefix(sums, Integer::sum); >> int[] movsums = Arrays.copyOfRange(sums, N, sums.length); >> Arrays.parallelSetAll(movsums, i -> movsums[i] - sums[i]); >> double[] means = new double[movsums.length]; >> Arrays.parallelSetAll(means, i -> (double)movsums[i] / N); >> >> Note that my code snippet omits the first moving average instead of the last >> one, as in your example. >> >> Finally, you have to watch out for overflow, since the last element of the sums >> array will be the sum of all elements in the input array. It would be nice if >> there were a way to use a prefix operation to do the running sum and subtract >> off the element leaving the window, but I wasn't able to figure out how to do that. > > Of course, right after I posted this I figured out how to do that. :-) > > The trick is, from each element i, to first subtract off the (i-N)th element, > and then to do the prefix sum. This gives the moving averages in-place. As a > bonus, it saves a copy operation, and as another bonus, it computes all > length-N+1 moving averages. > > int[] temp = Arrays.copyOf(numbers, numbers.length); > Arrays.parallelSetAll(temp, i -> temp[i] - ((i < N) ? 0 : numbers[i - N])); > Arrays.parallelPrefix(temp, Integer::sum); > double[] means = new double[numbers.length]; > Arrays.parallelSetAll(means, i -> (double)temp[i] / N); > > Elements [0..N-2] of the means array are garbage, but the remaining elements are > the moving averages. > > I have a feeling I just reinvented something FORTRAN programmers knew about in > the 1960s. > :-) neat. I believe you could stick to your original use of prefixSum, then switch into streams to avoid the array copy and do one parallel pass to get the double array. Off the top of my head: int[] sums = Arrays.copyOf(numbers, numbers.length); Arrays.parallelPrefix(sums, Integer::sum); IntStream.range(N, sums.length) .map(i -> sums[i] - sums[i - N]) .mapToDouble(s -> (double)s / N) .toArray(); We removed the cumulate (aka prefix sum operation, for reasons of "What the heck is that?" and YAGNI, but i liked it). It's the kind of thing that could be easily added as a pluggable operation if/when we enhance the streams to support an SPI. Paul. From Sebastian.Zarnekow at itemis.de Mon Oct 28 01:11:31 2013 From: Sebastian.Zarnekow at itemis.de (Sebastian Zarnekow) Date: Mon, 28 Oct 2013 09:11:31 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> Message-ID: Hi Paul, I made it a poor-mans benchmark without caliper or other third party deps. The code just loops infinitly and prints the time that it takes to compute the sum with three different flavors: https://gist.github.com/szarnekow/7193025 The numbers look really spooky to me, e.g. the first lines in the console look like this: sum took 506 ms parallelSumJava8 took 245 ms sequentialSumJava8 took 896 ms while it becomes a lot slower after a few iterations and converges to something along these lines: sum took 448 ms parallelSumJava8 took 1010 ms sequentialSumJava8 took 975 ms All default memory settings, no tuning args. Unfortunately I cannot run this with b92 right now. Maybe that helps to analyze the regression. Best regards, Sebastian On 27.10.2013, at 14:51, Paul Sandoz wrote: > Hi Sebastian, > > The code you have looks fine, but i am not familiar with Caliper. I presume the magnitude of those grey bars represents variance? > > It's hard to know what might cause such a regression, especially when N is large (> 10^4) which should factor out the costs of going parallel, implying it could be something deeper in the stack. You have noted correctly that there should be no per-element boxing cost (just one box/unbox for the result) > > I would need to run this myself to investigate. There is an outlier for SequentialSumJava8, 1000000 1.8.0-ea-b92 that makes me suspicious. > > Paul. > > On Oct 26, 2013, at 1:03 PM, Sebastian Zarnekow wrote: > >> Hi, >> >> I think I stumbled on some performance regression in b112. Please consider this simple code: >> >> public class C { >> >> public int parallelSum(final int reps) { >> IntStream stream = Arrays.stream(array).parallel().map(e -> >> e * 5 * reps >> ); >> int result += stream.sum(); >> return result; >> } >> >> C() { >> this.length = 2; >> setUp(); >> parallelSum(5); >> } >> >> private int[] array; >> private int length; >> >> protected void setUp() { >> array = new int[length]; >> for(int i = 0; i < length; i++) { >> array[i] = 3 * i; >> } >> } >> >> public static void main(String[] args) { >> new C(); >> } >> } >> >> which was extracted from some Caliper benchmark code. The benchmark results (code: https://gist.github.com/szarnekow/7168147) are here (produced with build 1.8.0-ea-b112): >> >> https://microbenchmarks.appspot.com/runs/a0579577-2df9-4894-9b19-ac345f78b020#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >> >> whereas the following results were produced with an earlier build (1.8.0-ea-b92) >> >> https://microbenchmarks.appspot.com/runs/220a5db5-434c-43f3-9cd9-93ef869d51e8#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >> >> Initially thought it can be tracked down to java.util.stream.IntPipeline#reduce(int, java.util.function.IntBinaryOperator) which ultimately causes boxing / unboxing in ReduceOps.makeInt.ReducingSink.get() but the benchmark results for a sequential stream contradicted that. Also it turned out that #get is only called once in the parallel scenario, too. So here I was on the wrong track. Is there some other information that I could provide to track this regression down? Should the code be written differently? >> >> Best regards, >> Sebastian >> >> > > From paul.sandoz at oracle.com Mon Oct 28 02:16:00 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 28 Oct 2013 10:16:00 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> Message-ID: Hi Sebastian, Part of the problem here is that we may not be measuring what we think you are measuring because of the dynamic nature of the JVM. This can make things spooky. I was able to mess around with your latest code and get parallel speed up for certain runs. I am gonna try with jmh [1] and report back. Paul. [1] http://openjdk.java.net/projects/code-tools/jmh/ On Oct 28, 2013, at 9:11 AM, Sebastian Zarnekow wrote: > Hi Paul, > > I made it a poor-mans benchmark without caliper or other third party deps. The code just loops infinitly and prints the time that it takes to compute the sum with three different flavors: > https://gist.github.com/szarnekow/7193025 > > The numbers look really spooky to me, e.g. the first lines in the console look like this: > > sum took 506 ms > parallelSumJava8 took 245 ms > sequentialSumJava8 took 896 ms > > while it becomes a lot slower after a few iterations and converges to something along these lines: > > sum took 448 ms > parallelSumJava8 took 1010 ms > sequentialSumJava8 took 975 ms > > All default memory settings, no tuning args. > Unfortunately I cannot run this with b92 right now. > > Maybe that helps to analyze the regression. > > Best regards, > Sebastian > > On 27.10.2013, at 14:51, Paul Sandoz wrote: > >> Hi Sebastian, >> >> The code you have looks fine, but i am not familiar with Caliper. I presume the magnitude of those grey bars represents variance? >> >> It's hard to know what might cause such a regression, especially when N is large (> 10^4) which should factor out the costs of going parallel, implying it could be something deeper in the stack. You have noted correctly that there should be no per-element boxing cost (just one box/unbox for the result) >> >> I would need to run this myself to investigate. There is an outlier for SequentialSumJava8, 1000000 1.8.0-ea-b92 that makes me suspicious. >> >> Paul. >> >> On Oct 26, 2013, at 1:03 PM, Sebastian Zarnekow wrote: >> >>> Hi, >>> >>> I think I stumbled on some performance regression in b112. Please consider this simple code: >>> >>> public class C { >>> >>> public int parallelSum(final int reps) { >>> IntStream stream = Arrays.stream(array).parallel().map(e -> >>> e * 5 * reps >>> ); >>> int result += stream.sum(); >>> return result; >>> } >>> >>> C() { >>> this.length = 2; >>> setUp(); >>> parallelSum(5); >>> } >>> >>> private int[] array; >>> private int length; >>> >>> protected void setUp() { >>> array = new int[length]; >>> for(int i = 0; i < length; i++) { >>> array[i] = 3 * i; >>> } >>> } >>> >>> public static void main(String[] args) { >>> new C(); >>> } >>> } >>> >>> which was extracted from some Caliper benchmark code. The benchmark results (code: https://gist.github.com/szarnekow/7168147) are here (produced with build 1.8.0-ea-b112): >>> >>> https://microbenchmarks.appspot.com/runs/a0579577-2df9-4894-9b19-ac345f78b020#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >>> >>> whereas the following results were produced with an earlier build (1.8.0-ea-b92) >>> >>> https://microbenchmarks.appspot.com/runs/220a5db5-434c-43f3-9cd9-93ef869d51e8#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >>> >>> Initially thought it can be tracked down to java.util.stream.IntPipeline#reduce(int, java.util.function.IntBinaryOperator) which ultimately causes boxing / unboxing in ReduceOps.makeInt.ReducingSink.get() but the benchmark results for a sequential stream contradicted that. Also it turned out that #get is only called once in the parallel scenario, too. So here I was on the wrong track. Is there some other information that I could provide to track this regression down? Should the code be written differently? >>> >>> Best regards, >>> Sebastian >>> >>> >> >> > From peter.levart at gmail.com Mon Oct 28 04:47:44 2013 From: peter.levart at gmail.com (Peter Levart) Date: Mon, 28 Oct 2013 12:47:44 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> Message-ID: <526E4EE0.1050903@gmail.com> Hi Paul, Sebastian, Try with -XX:-TieredCompilation ... Regards, Peter On 10/28/2013 10:16 AM, Paul Sandoz wrote: > Hi Sebastian, > > Part of the problem here is that we may not be measuring what we think you are measuring because of the dynamic nature of the JVM. This can make things spooky. I was able to mess around with your latest code and get parallel speed up for certain runs. > > I am gonna try with jmh [1] and report back. > > Paul. > > [1] http://openjdk.java.net/projects/code-tools/jmh/ > > On Oct 28, 2013, at 9:11 AM, Sebastian Zarnekow wrote: > >> Hi Paul, >> >> I made it a poor-mans benchmark without caliper or other third party deps. The code just loops infinitly and prints the time that it takes to compute the sum with three different flavors: >> https://gist.github.com/szarnekow/7193025 >> >> The numbers look really spooky to me, e.g. the first lines in the console look like this: >> >> sum took 506 ms >> parallelSumJava8 took 245 ms >> sequentialSumJava8 took 896 ms >> >> while it becomes a lot slower after a few iterations and converges to something along these lines: >> >> sum took 448 ms >> parallelSumJava8 took 1010 ms >> sequentialSumJava8 took 975 ms >> >> All default memory settings, no tuning args. >> Unfortunately I cannot run this with b92 right now. >> >> Maybe that helps to analyze the regression. >> >> Best regards, >> Sebastian >> >> On 27.10.2013, at 14:51, Paul Sandoz wrote: >> >>> Hi Sebastian, >>> >>> The code you have looks fine, but i am not familiar with Caliper. I presume the magnitude of those grey bars represents variance? >>> >>> It's hard to know what might cause such a regression, especially when N is large (> 10^4) which should factor out the costs of going parallel, implying it could be something deeper in the stack. You have noted correctly that there should be no per-element boxing cost (just one box/unbox for the result) >>> >>> I would need to run this myself to investigate. There is an outlier for SequentialSumJava8, 1000000 1.8.0-ea-b92 that makes me suspicious. >>> >>> Paul. >>> >>> On Oct 26, 2013, at 1:03 PM, Sebastian Zarnekow wrote: >>> >>>> Hi, >>>> >>>> I think I stumbled on some performance regression in b112. Please consider this simple code: >>>> >>>> public class C { >>>> >>>> public int parallelSum(final int reps) { >>>> IntStream stream = Arrays.stream(array).parallel().map(e -> >>>> e * 5 * reps >>>> ); >>>> int result += stream.sum(); >>>> return result; >>>> } >>>> >>>> C() { >>>> this.length = 2; >>>> setUp(); >>>> parallelSum(5); >>>> } >>>> >>>> private int[] array; >>>> private int length; >>>> >>>> protected void setUp() { >>>> array = new int[length]; >>>> for(int i = 0; i < length; i++) { >>>> array[i] = 3 * i; >>>> } >>>> } >>>> >>>> public static void main(String[] args) { >>>> new C(); >>>> } >>>> } >>>> >>>> which was extracted from some Caliper benchmark code. The benchmark results (code: https://gist.github.com/szarnekow/7168147) are here (produced with build 1.8.0-ea-b112): >>>> >>>> https://microbenchmarks.appspot.com/runs/a0579577-2df9-4894-9b19-ac345f78b020#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >>>> >>>> whereas the following results were produced with an earlier build (1.8.0-ea-b92) >>>> >>>> https://microbenchmarks.appspot.com/runs/220a5db5-434c-43f3-9cd9-93ef869d51e8#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >>>> >>>> Initially thought it can be tracked down to java.util.stream.IntPipeline#reduce(int, java.util.function.IntBinaryOperator) which ultimately causes boxing / unboxing in ReduceOps.makeInt.ReducingSink.get() but the benchmark results for a sequential stream contradicted that. Also it turned out that #get is only called once in the parallel scenario, too. So here I was on the wrong track. Is there some other information that I could provide to track this regression down? Should the code be written differently? >>>> >>>> Best regards, >>>> Sebastian >>>> >>>> >>> > > From paul.sandoz at oracle.com Mon Oct 28 05:14:30 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 28 Oct 2013 13:14:30 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> Message-ID: <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> Hi, See the following maven project for a simple jmh test: http://cr.openjdk.java.net/~psandoz/lambda/sum-test.zip mvn compile mvn exec:exec -Dexec.executable="java" -Dexec.args="-cp %classpath lambda.StreamSumTest" If you are running this against tl (or perhaps a most recent jdk8 ea build, i am not sure when it was introduced) you might hit a Hotspot bug [1]. Here are the results running against tl on my macbook pro: N = 1000, lambda.StreamSumTest.testSeq = 449.57 ns, lambda.StreamSumTest.testStreamPar = 10768.05 ns, lambda.StreamSumTest.testStreamSeq = 5116.70 ns N = 10000, lambda.StreamSumTest.testSeq = 4369.08 ns, lambda.StreamSumTest.testStreamPar = 26125.72 ns, lambda.StreamSumTest.testStreamSeq = 50704.62 ns N = 100000, lambda.StreamSumTest.testSeq = 44746.85 ns, lambda.StreamSumTest.testStreamPar = 60928.11 ns, lambda.StreamSumTest.testStreamSeq = 504971.77 ns N = 1000000, lambda.StreamSumTest.testSeq = 446940.01 ns, lambda.StreamSumTest.testStreamPar = 1456732.71 ns, lambda.StreamSumTest.testStreamSeq = 463216.58 ns N = 10000000, lambda.StreamSumTest.testSeq = 4599356.27 ns, lambda.StreamSumTest.testStreamPar = 13541336.48 ns, lambda.StreamSumTest.testStreamSeq = 4781332.56 ns All looks ok up to N=100_000, but then the parallel performance goes south for N=1_000_000 and the sequential measurement is faster that the previous measurement. So something ain't quite right. Here is a run that reproduces more closely what you observe: N = 100000, lambda.StreamSumTest.testSeq = 44622.00 ns, lambda.StreamSumTest.testStreamPar = 81310.29 ns, lambda.StreamSumTest.testStreamSeq = 504237.91 ns N = 150000, lambda.StreamSumTest.testSeq = 66292.57 ns, lambda.StreamSumTest.testStreamPar = 223427.03 ns, lambda.StreamSumTest.testStreamSeq = 745925.67 ns N = 200000, lambda.StreamSumTest.testSeq = 88635.57 ns, lambda.StreamSumTest.testStreamPar = 301486.68 ns, lambda.StreamSumTest.testStreamSeq = 119910.05 ns N = 250000, lambda.StreamSumTest.testSeq = 110282.65 ns, lambda.StreamSumTest.testStreamPar = 372250.76 ns, lambda.StreamSumTest.testStreamSeq = 116472.69 ns N = 300000, lambda.StreamSumTest.testSeq = 132324.48 ns, lambda.StreamSumTest.testStreamPar = 441951.61 ns, lambda.StreamSumTest.testStreamSeq = 180784.40 ns N = 350000, lambda.StreamSumTest.testSeq = 154606.26 ns, lambda.StreamSumTest.testStreamPar = 506304.43 ns, lambda.StreamSumTest.testStreamSeq = 163264.99 ns N = 400000, lambda.StreamSumTest.testSeq = 176641.57 ns, lambda.StreamSumTest.testStreamPar = 597616.15 ns, lambda.StreamSumTest.testStreamSeq = 186684.42 ns N = 450000, lambda.StreamSumTest.testSeq = 198831.18 ns, lambda.StreamSumTest.testStreamPar = 643014.78 ns, lambda.StreamSumTest.testStreamSeq = 210266.43 ns And another showing min/max/std: N = 100000, testSeq = [43702.98, 46953.27] ns std = 846.48, testStreamPar = [36440.52, 186045.96] ns std = 52139.57, testStreamSeq = [46368.35, 519820.51] ns std = 198749.40 N = 150000, testSeq = [65730.82, 69287.38] ns std = 985.24, testStreamPar = [46112.90, 283185.92] ns std = 86288.19, testStreamSeq = [739919.71, 798913.39] ns std = 14951.13 N = 200000, testSeq = [87389.80, 93263.40] ns std = 1277.36, testStreamPar = [226219.24, 330973.86] ns std = 33158.44, testStreamSeq = [90188.22, 771664.12] ns std = 290565.98 N = 250000, testSeq = [109214.90, 115433.79] ns std = 1943.37, testStreamPar = [362114.70, 462211.98] ns std = 27934.58, testStreamSeq = [114811.58, 120525.06] ns std = 1707.77 N = 300000, testSeq = [131236.36, 140235.78] ns std = 2188.25, testStreamPar = [425894.96, 509646.46] ns std = 15809.52, testStreamSeq = [137893.59, 1555769.23] ns std = 597755.24 N = 350000, testSeq = [153025.72, 160845.79] ns std = 2439.52, testStreamPar = [496725.49, 593134.50] ns std = 25689.47, testStreamSeq = [160996.82, 169546.53] ns std = 2461.74 N = 400000, testSeq = [174403.45, 185214.29] ns std = 3309.23, testStreamPar = [350224.91, 704840.28] ns std = 80684.56, testStreamSeq = [183756.81, 200096.84] ns std = 4245.38 N = 450000, testSeq = [196297.09, 208527.95] ns std = 3200.05, testStreamPar = [632362.50, 780661.54] ns std = 27159.28, testStreamSeq = [203498.99, 2386279.07] ns std = 1016306.16 I dunno what might be causing this. Wondering if the F/J common pool is unhappy. Plus i need to double check the jmh options with someone more expert than I. Paul. [1] https://bugs.openjdk.java.net/browse/JDK-8026735 On Oct 28, 2013, at 10:16 AM, Paul Sandoz wrote: > Hi Sebastian, > > Part of the problem here is that we may not be measuring what we think you are measuring because of the dynamic nature of the JVM. This can make things spooky. I was able to mess around with your latest code and get parallel speed up for certain runs. > > I am gonna try with jmh [1] and report back. > > Paul. > > [1] http://openjdk.java.net/projects/code-tools/jmh/ > > On Oct 28, 2013, at 9:11 AM, Sebastian Zarnekow wrote: > >> Hi Paul, >> >> I made it a poor-mans benchmark without caliper or other third party deps. The code just loops infinitly and prints the time that it takes to compute the sum with three different flavors: >> https://gist.github.com/szarnekow/7193025 >> >> The numbers look really spooky to me, e.g. the first lines in the console look like this: >> >> sum took 506 ms >> parallelSumJava8 took 245 ms >> sequentialSumJava8 took 896 ms >> >> while it becomes a lot slower after a few iterations and converges to something along these lines: >> >> sum took 448 ms >> parallelSumJava8 took 1010 ms >> sequentialSumJava8 took 975 ms >> >> All default memory settings, no tuning args. >> Unfortunately I cannot run this with b92 right now. >> >> Maybe that helps to analyze the regression. >> >> Best regards, >> Sebastian >> >> On 27.10.2013, at 14:51, Paul Sandoz wrote: >> >>> Hi Sebastian, >>> >>> The code you have looks fine, but i am not familiar with Caliper. I presume the magnitude of those grey bars represents variance? >>> >>> It's hard to know what might cause such a regression, especially when N is large (> 10^4) which should factor out the costs of going parallel, implying it could be something deeper in the stack. You have noted correctly that there should be no per-element boxing cost (just one box/unbox for the result) >>> >>> I would need to run this myself to investigate. There is an outlier for SequentialSumJava8, 1000000 1.8.0-ea-b92 that makes me suspicious. >>> >>> Paul. >>> >>> On Oct 26, 2013, at 1:03 PM, Sebastian Zarnekow wrote: >>> >>>> Hi, >>>> >>>> I think I stumbled on some performance regression in b112. Please consider this simple code: >>>> >>>> public class C { >>>> >>>> public int parallelSum(final int reps) { >>>> IntStream stream = Arrays.stream(array).parallel().map(e -> >>>> e * 5 * reps >>>> ); >>>> int result += stream.sum(); >>>> return result; >>>> } >>>> >>>> C() { >>>> this.length = 2; >>>> setUp(); >>>> parallelSum(5); >>>> } >>>> >>>> private int[] array; >>>> private int length; >>>> >>>> protected void setUp() { >>>> array = new int[length]; >>>> for(int i = 0; i < length; i++) { >>>> array[i] = 3 * i; >>>> } >>>> } >>>> >>>> public static void main(String[] args) { >>>> new C(); >>>> } >>>> } >>>> >>>> which was extracted from some Caliper benchmark code. The benchmark results (code: https://gist.github.com/szarnekow/7168147) are here (produced with build 1.8.0-ea-b112): >>>> >>>> https://microbenchmarks.appspot.com/runs/a0579577-2df9-4894-9b19-ac345f78b020#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >>>> >>>> whereas the following results were produced with an earlier build (1.8.0-ea-b92) >>>> >>>> https://microbenchmarks.appspot.com/runs/220a5db5-434c-43f3-9cd9-93ef869d51e8#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >>>> >>>> Initially thought it can be tracked down to java.util.stream.IntPipeline#reduce(int, java.util.function.IntBinaryOperator) which ultimately causes boxing / unboxing in ReduceOps.makeInt.ReducingSink.get() but the benchmark results for a sequential stream contradicted that. Also it turned out that #get is only called once in the parallel scenario, too. So here I was on the wrong track. Is there some other information that I could provide to track this regression down? Should the code be written differently? >>>> >>>> Best regards, >>>> Sebastian >>>> >>>> >>> >>> >> > > From paul.sandoz at oracle.com Mon Oct 28 05:44:28 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 28 Oct 2013 13:44:28 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: <526E4EE0.1050903@gmail.com> References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <526E4EE0.1050903@gmail.com> Message-ID: On Oct 28, 2013, at 12:47 PM, Peter Levart wrote: > Hi Paul, Sebastian, > > Try with -XX:-TieredCompilation ... I tried that with the jmh benchmark but i observed no difference. Paul. From sergey.kuksenko at oracle.com Mon Oct 28 05:46:05 2013 From: sergey.kuksenko at oracle.com (Sergey Kuksenko) Date: Mon, 28 Oct 2013 16:46:05 +0400 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> Message-ID: <526E5C8D.4090207@oracle.com> Hi All, The reason of such behavoir is TieredCompilation which was turned off by default in b92 and turned on in b112. Here is some data, under jmh (average time per op; uses/op) b92_NonTiered b92_Tiered b112_NonTiered b112_Tiered 1M_seq 1568 5294 1561 13347 1M_par 869 12770 802 7044 5M_seq 7673 7634 7630 7570 5M_par 4042 19789 3670 33147 Moreover, TieredCompilation causes a huge run-to-run variance here, expecially for parallel cases. You may find my sources and jar files here: http://cr.openjdk.java.net/~skuksenko/intstream/tiered/ I created two jars - the one for b92 and the secons is for current builds, because classfile format was changed. On 10/28/2013 04:14 PM, Paul Sandoz wrote: > Hi, > > See the following maven project for a simple jmh test: > > http://cr.openjdk.java.net/~psandoz/lambda/sum-test.zip > > mvn compile > mvn exec:exec -Dexec.executable="java" -Dexec.args="-cp %classpath lambda.StreamSumTest" > > If you are running this against tl (or perhaps a most recent jdk8 ea build, i am not sure when it was introduced) you might hit a Hotspot bug [1]. > > Here are the results running against tl on my macbook pro: > > N = 1000, lambda.StreamSumTest.testSeq = 449.57 ns, lambda.StreamSumTest.testStreamPar = 10768.05 ns, lambda.StreamSumTest.testStreamSeq = 5116.70 ns > N = 10000, lambda.StreamSumTest.testSeq = 4369.08 ns, lambda.StreamSumTest.testStreamPar = 26125.72 ns, lambda.StreamSumTest.testStreamSeq = 50704.62 ns > N = 100000, lambda.StreamSumTest.testSeq = 44746.85 ns, lambda.StreamSumTest.testStreamPar = 60928.11 ns, lambda.StreamSumTest.testStreamSeq = 504971.77 ns > N = 1000000, lambda.StreamSumTest.testSeq = 446940.01 ns, lambda.StreamSumTest.testStreamPar = 1456732.71 ns, lambda.StreamSumTest.testStreamSeq = 463216.58 ns > N = 10000000, lambda.StreamSumTest.testSeq = 4599356.27 ns, lambda.StreamSumTest.testStreamPar = 13541336.48 ns, lambda.StreamSumTest.testStreamSeq = 4781332.56 ns > > All looks ok up to N=100_000, but then the parallel performance goes south for N=1_000_000 and the sequential measurement is faster that the previous measurement. So something ain't quite right. > > Here is a run that reproduces more closely what you observe: > > N = 100000, lambda.StreamSumTest.testSeq = 44622.00 ns, lambda.StreamSumTest.testStreamPar = 81310.29 ns, lambda.StreamSumTest.testStreamSeq = 504237.91 ns > N = 150000, lambda.StreamSumTest.testSeq = 66292.57 ns, lambda.StreamSumTest.testStreamPar = 223427.03 ns, lambda.StreamSumTest.testStreamSeq = 745925.67 ns > N = 200000, lambda.StreamSumTest.testSeq = 88635.57 ns, lambda.StreamSumTest.testStreamPar = 301486.68 ns, lambda.StreamSumTest.testStreamSeq = 119910.05 ns > N = 250000, lambda.StreamSumTest.testSeq = 110282.65 ns, lambda.StreamSumTest.testStreamPar = 372250.76 ns, lambda.StreamSumTest.testStreamSeq = 116472.69 ns > N = 300000, lambda.StreamSumTest.testSeq = 132324.48 ns, lambda.StreamSumTest.testStreamPar = 441951.61 ns, lambda.StreamSumTest.testStreamSeq = 180784.40 ns > N = 350000, lambda.StreamSumTest.testSeq = 154606.26 ns, lambda.StreamSumTest.testStreamPar = 506304.43 ns, lambda.StreamSumTest.testStreamSeq = 163264.99 ns > N = 400000, lambda.StreamSumTest.testSeq = 176641.57 ns, lambda.StreamSumTest.testStreamPar = 597616.15 ns, lambda.StreamSumTest.testStreamSeq = 186684.42 ns > N = 450000, lambda.StreamSumTest.testSeq = 198831.18 ns, lambda.StreamSumTest.testStreamPar = 643014.78 ns, lambda.StreamSumTest.testStreamSeq = 210266.43 ns > > And another showing min/max/std: > > N = 100000, testSeq = [43702.98, 46953.27] ns std = 846.48, testStreamPar = [36440.52, 186045.96] ns std = 52139.57, testStreamSeq = [46368.35, 519820.51] ns std = 198749.40 > N = 150000, testSeq = [65730.82, 69287.38] ns std = 985.24, testStreamPar = [46112.90, 283185.92] ns std = 86288.19, testStreamSeq = [739919.71, 798913.39] ns std = 14951.13 > N = 200000, testSeq = [87389.80, 93263.40] ns std = 1277.36, testStreamPar = [226219.24, 330973.86] ns std = 33158.44, testStreamSeq = [90188.22, 771664.12] ns std = 290565.98 > N = 250000, testSeq = [109214.90, 115433.79] ns std = 1943.37, testStreamPar = [362114.70, 462211.98] ns std = 27934.58, testStreamSeq = [114811.58, 120525.06] ns std = 1707.77 > N = 300000, testSeq = [131236.36, 140235.78] ns std = 2188.25, testStreamPar = [425894.96, 509646.46] ns std = 15809.52, testStreamSeq = [137893.59, 1555769.23] ns std = 597755.24 > N = 350000, testSeq = [153025.72, 160845.79] ns std = 2439.52, testStreamPar = [496725.49, 593134.50] ns std = 25689.47, testStreamSeq = [160996.82, 169546.53] ns std = 2461.74 > N = 400000, testSeq = [174403.45, 185214.29] ns std = 3309.23, testStreamPar = [350224.91, 704840.28] ns std = 80684.56, testStreamSeq = [183756.81, 200096.84] ns std = 4245.38 > N = 450000, testSeq = [196297.09, 208527.95] ns std = 3200.05, testStreamPar = [632362.50, 780661.54] ns std = 27159.28, testStreamSeq = [203498.99, 2386279.07] ns std = 1016306.16 > > I dunno what might be causing this. Wondering if the F/J common pool is unhappy. Plus i need to double check the jmh options with someone more expert than I. > > Paul. > > [1] https://bugs.openjdk.java.net/browse/JDK-8026735 > > On Oct 28, 2013, at 10:16 AM, Paul Sandoz wrote: > >> Hi Sebastian, >> >> Part of the problem here is that we may not be measuring what we think you are measuring because of the dynamic nature of the JVM. This can make things spooky. I was able to mess around with your latest code and get parallel speed up for certain runs. >> >> I am gonna try with jmh [1] and report back. >> >> Paul. >> >> [1] http://openjdk.java.net/projects/code-tools/jmh/ >> >> On Oct 28, 2013, at 9:11 AM, Sebastian Zarnekow wrote: >> >>> Hi Paul, >>> >>> I made it a poor-mans benchmark without caliper or other third party deps. The code just loops infinitly and prints the time that it takes to compute the sum with three different flavors: >>> https://gist.github.com/szarnekow/7193025 >>> >>> The numbers look really spooky to me, e.g. the first lines in the console look like this: >>> >>> sum took 506 ms >>> parallelSumJava8 took 245 ms >>> sequentialSumJava8 took 896 ms >>> >>> while it becomes a lot slower after a few iterations and converges to something along these lines: >>> >>> sum took 448 ms >>> parallelSumJava8 took 1010 ms >>> sequentialSumJava8 took 975 ms >>> >>> All default memory settings, no tuning args. >>> Unfortunately I cannot run this with b92 right now. >>> >>> Maybe that helps to analyze the regression. >>> >>> Best regards, >>> Sebastian >>> >>> On 27.10.2013, at 14:51, Paul Sandoz wrote: >>> >>>> Hi Sebastian, >>>> >>>> The code you have looks fine, but i am not familiar with Caliper. I presume the magnitude of those grey bars represents variance? >>>> >>>> It's hard to know what might cause such a regression, especially when N is large (> 10^4) which should factor out the costs of going parallel, implying it could be something deeper in the stack. You have noted correctly that there should be no per-element boxing cost (just one box/unbox for the result) >>>> >>>> I would need to run this myself to investigate. There is an outlier for SequentialSumJava8, 1000000 1.8.0-ea-b92 that makes me suspicious. >>>> >>>> Paul. >>>> >>>> On Oct 26, 2013, at 1:03 PM, Sebastian Zarnekow wrote: >>>> >>>>> Hi, >>>>> >>>>> I think I stumbled on some performance regression in b112. Please consider this simple code: >>>>> >>>>> public class C { >>>>> >>>>> public int parallelSum(final int reps) { >>>>> IntStream stream = Arrays.stream(array).parallel().map(e -> >>>>> e * 5 * reps >>>>> ); >>>>> int result += stream.sum(); >>>>> return result; >>>>> } >>>>> >>>>> C() { >>>>> this.length = 2; >>>>> setUp(); >>>>> parallelSum(5); >>>>> } >>>>> >>>>> private int[] array; >>>>> private int length; >>>>> >>>>> protected void setUp() { >>>>> array = new int[length]; >>>>> for(int i = 0; i < length; i++) { >>>>> array[i] = 3 * i; >>>>> } >>>>> } >>>>> >>>>> public static void main(String[] args) { >>>>> new C(); >>>>> } >>>>> } >>>>> >>>>> which was extracted from some Caliper benchmark code. The benchmark results (code: https://gist.github.com/szarnekow/7168147) are here (produced with build 1.8.0-ea-b112): >>>>> >>>>> https://microbenchmarks.appspot.com/runs/a0579577-2df9-4894-9b19-ac345f78b020#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >>>>> >>>>> whereas the following results were produced with an earlier build (1.8.0-ea-b92) >>>>> >>>>> https://microbenchmarks.appspot.com/runs/220a5db5-434c-43f3-9cd9-93ef869d51e8#r:scenario.benchmarkSpec.methodName,scenario.benchmarkSpec.parameters.length >>>>> >>>>> Initially thought it can be tracked down to java.util.stream.IntPipeline#reduce(int, java.util.function.IntBinaryOperator) which ultimately causes boxing / unboxing in ReduceOps.makeInt.ReducingSink.get() but the benchmark results for a sequential stream contradicted that. Also it turned out that #get is only called once in the parallel scenario, too. So here I was on the wrong track. Is there some other information that I could provide to track this regression down? Should the code be written differently? >>>>> >>>>> Best regards, >>>>> Sebastian >>>>> >>>>> >>>> >>>> >>> >> >> > > > > -- Best regards, Sergey Kuksenko From paul.sandoz at oracle.com Mon Oct 28 07:22:25 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 28 Oct 2013 15:22:25 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: <526E5C8D.4090207@oracle.com> References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> <526E5C8D.4090207@oracle.com> Message-ID: Hi Sergey, On Oct 28, 2013, at 1:46 PM, Sergey Kuksenko wrote: > Hi All, > The reason of such behavoir is TieredCompilation which was turned off by > default in b92 and turned on in b112. > Here is some data, under jmh (average time per op; uses/op) > > b92_NonTiered b92_Tiered b112_NonTiered b112_Tiered > 1M_seq 1568 5294 1561 13347 > 1M_par 869 12770 802 7044 > 5M_seq 7673 7634 7630 7570 > 5M_par 4042 19789 3670 33147 > > Moreover, TieredCompilation causes a huge run-to-run variance here, > expecially for parallel cases. > You may find my sources and jar files here: > http://cr.openjdk.java.net/~skuksenko/intstream/tiered/ > Thanks. The src directory is empty. Here are the results for my test with (adjusting based on your advice off list): Options opts = new OptionsBuilder() .include(".*StreamSumTest.*") .jvmArgs("-Dbenchmark.n=" + n) .mode(Mode.AverageTime) .timeUnit(TimeUnit.NANOSECONDS) .warmupIterations(10) .warmupTime(TimeValue.milliseconds(1000)) .measurementIterations(10) .measurementTime(TimeValue.milliseconds(1000)) .forks(4) .build(); -XX:-TieredCompilation, N = 100_000 Benchmark Mode Thr Cnt Sec Mean Mean error Units l.StreamSumTest.testSeq avgt 1 40 1 43509.309 114.487 nsec/op l.StreamSumTest.testStreamPar avgt 1 40 1 108882.854 29918.402 nsec/op l.StreamSumTest.testStreamSeq avgt 1 40 1 499711.104 1382.872 nsec/op -XX:-TieredCompilation, N = 1_000_000 Benchmark Mode Thr Cnt Sec Mean Mean error Units l.StreamSumTest.testSeq avgt 1 40 1 443011.329 902.065 nsec/op l.StreamSumTest.testStreamPar avgt 1 40 1 1565053.123 17028.800 nsec/op l.StreamSumTest.testStreamSeq avgt 1 40 1 467933.044 1074.794 nsec/op -XX:+TieredCompilation, N = 100_000 Benchmark Mode Thr Cnt Sec Mean Mean error Units l.StreamSumTest.testSeq avgt 1 40 1 43533.608 82.619 nsec/op l.StreamSumTest.testStreamPar avgt 1 40 1 165477.693 7557.480 nsec/op l.StreamSumTest.testStreamSeq avgt 1 40 1 498996.086 1013.645 nsec/op -XX:+TieredCompilation, N = 1_000_000 Benchmark Mode Thr Cnt Sec Mean Mean error Units l.StreamSumTest.testSeq avgt 1 40 1 443919.982 969.729 nsec/op l.StreamSumTest.testStreamPar avgt 1 40 1 1567403.736 18983.551 nsec/op l.StreamSumTest.testStreamSeq avgt 1 40 1 1595995.987 847523.680 nsec/op So i am still observing a drop in parallel performance going from N=10^5 to N=10^6. Paul. From sergey.kuksenko at oracle.com Mon Oct 28 07:44:15 2013 From: sergey.kuksenko at oracle.com (Sergey Kuksenko) Date: Mon, 28 Oct 2013 18:44:15 +0400 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> <526E5C8D.4090207@oracle.com> Message-ID: <526E783F.9000400@oracle.com> On 10/28/2013 06:22 PM, Paul Sandoz wrote: >> You may find my sources and jar files here: >> http://cr.openjdk.java.net/~skuksenko/intstream/tiered/ > Thanks. The src directory is empty. Fixed. > Here are the results for my test with (adjusting based on your advice > off list): > > Options opts = new OptionsBuilder() > .include(".*StreamSumTest.*") > .jvmArgs("-Dbenchmark.n=" + n) > .mode(Mode.AverageTime) > .timeUnit(TimeUnit.NANOSECONDS) > .warmupIterations(10) > .warmupTime(TimeValue.milliseconds(1000)) > .measurementIterations(10) > .measurementTime(TimeValue.milliseconds(1000)) > .forks(4) > .build(); > > > -XX:-TieredCompilation, N = 100_000 > Benchmark Mode Thr Cnt Sec Mean > Mean error Units > l.StreamSumTest.testSeq avgt 1 40 1 43509.309 > 114.487 nsec/op > l.StreamSumTest.testStreamPar avgt 1 40 1 108882.854 > 29918.402 nsec/op > l.StreamSumTest.testStreamSeq avgt 1 40 1 499711.104 > 1382.872 nsec/op > > > -XX:-TieredCompilation, N = 1_000_000 > Benchmark Mode Thr Cnt Sec Mean > Mean error Units > l.StreamSumTest.testSeq avgt 1 40 1 443011.329 > 902.065 nsec/op > l.StreamSumTest.testStreamPar avgt 1 40 1 1565053.123 > 17028.800 nsec/op > l.StreamSumTest.testStreamSeq avgt 1 40 1 467933.044 > 1074.794 nsec/op > > > -XX:+TieredCompilation, N = 100_000 > Benchmark Mode Thr Cnt Sec Mean > Mean error Units > l.StreamSumTest.testSeq avgt 1 40 1 43533.608 > 82.619 nsec/op > l.StreamSumTest.testStreamPar avgt 1 40 1 165477.693 > 7557.480 nsec/op > l.StreamSumTest.testStreamSeq avgt 1 40 1 498996.086 > 1013.645 nsec/op > > -XX:+TieredCompilation, N = 1_000_000 > Benchmark Mode Thr Cnt Sec Mean > Mean error Units > l.StreamSumTest.testSeq avgt 1 40 1 443919.982 > 969.729 nsec/op > l.StreamSumTest.testStreamPar avgt 1 40 1 1567403.736 > 18983.551 nsec/op > l.StreamSumTest.testStreamSeq avgt 1 40 1 1595995.987 > 847523.680 nsec/op > > > So i am still observing a drop in parallel performance going from N=10^5 > to N=10^6. Hmmm. Quite strange. Have to evaluate it. -- Best regards, Sergey Kuksenko From paul.sandoz at oracle.com Mon Oct 28 09:15:55 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 28 Oct 2013 17:15:55 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: <526E783F.9000400@oracle.com> References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> <526E5C8D.4090207@oracle.com> <526E783F.9000400@oracle.com> Message-ID: <58EFC177-B24E-4B8D-9ADF-68A89E7E8248@oracle.com> On Oct 28, 2013, at 3:44 PM, Sergey Kuksenko wrote: > On 10/28/2013 06:22 PM, Paul Sandoz wrote: >>> You may find my sources and jar files here: >>> http://cr.openjdk.java.net/~skuksenko/intstream/tiered/ >> Thanks. The src directory is empty. > Fixed. > Thanks. > > Hmmm. Quite strange. Have to evaluate it. > Doh head hits desk. I forgot that vm flags were not propagated via the options builder to the forked java process: .jvmArgs("-XX:-TieredCompilation -Dbenchmark.n=" + n) grrr... sorry for the noise. Re-running... Paul. From paul.sandoz at oracle.com Mon Oct 28 10:01:40 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 28 Oct 2013 18:01:40 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: <58EFC177-B24E-4B8D-9ADF-68A89E7E8248@oracle.com> References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> <526E5C8D.4090207@oracle.com> <526E783F.9000400@oracle.com> <58EFC177-B24E-4B8D-9ADF-68A89E7E8248@oracle.com> Message-ID: On Oct 28, 2013, at 5:15 PM, Paul Sandoz wrote: > >> >> Hmmm. Quite strange. Have to evaluate it. >> > > Doh head hits desk. I forgot that vm flags were not propagated via the options builder to the forked java process: > > .jvmArgs("-XX:-TieredCompilation -Dbenchmark.n=" + n) > > grrr... sorry for the noise. Re-running... > N = 100_000 Benchmark Mode Thr Cnt Sec Mean Mean error Units l.StreamSumTest.testStreamPar avgt 1 100 1 39.105 0.317 us/op l.StreamSumTest.testStreamSeq avgt 1 100 1 486.373 1.516 us/op N = 1_000_000 Benchmark Mode Thr Cnt Sec Mean Mean error Units l.StreamSumTest.testStreamPar avgt 1 100 1 174.094 8.515 us/op l.StreamSumTest.testStreamSeq avgt 1 100 1 4877.512 18.542 us/op Now i am suspicious of the sequential numbers :-) While i would like to believe them my laptop has only eight hardware threads so 12x and 28x speed ups are highly suspicious. When looking at the sequential iterations (see below) i notice a slow down which kicks in after a number of iterations (perhaps proportional N) and i observed the same effect with your test program, the benchmark results for which are: java -XX:-TieredCompilation -jar target/microbenchmarks.jar -i 10 -f 2 Benchmark Mode Thr Cnt Sec Mean Mean error Units o.m.s.IntStreamSum100K.parallel avgt 1 20 1 40.469 1.517 us/op o.m.s.IntStreamSum100K.sequential avgt 1 20 1 477.382 4.407 us/op o.m.s.IntStreamSum1M.parallel avgt 1 20 1 150.988 1.855 us/op o.m.s.IntStreamSum1M.sequential avgt 1 20 1 4124.819 392.108 us/op o.m.s.IntStreamSum5M.parallel avgt 1 20 1 866.846 3.700 us/op o.m.s.IntStreamSum5M.sequential avgt 1 20 1 12629.711 5837.182 us/op Paul. N = 100_000 # Fork: 9 of 10 # Warmup: 20 iterations, 1000 ms each # Measurement: 10 iterations, 1000 ms each # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Running: lambda.StreamSumTest.testStreamSeq # Warmup Iteration 1: 89.432 us/op # Warmup Iteration 2: 484.337 us/op # Warmup Iteration 3: 494.509 us/op # Warmup Iteration 4: 483.470 us/op # Warmup Iteration 5: 487.811 us/op # Warmup Iteration 6: 485.572 us/op # Warmup Iteration 7: 489.385 us/op # Warmup Iteration 8: 488.314 us/op # Warmup Iteration 9: 493.298 us/op # Warmup Iteration 10: 497.965 us/op # Warmup Iteration 11: 483.907 us/op # Warmup Iteration 12: 494.186 us/op # Warmup Iteration 13: 492.135 us/op # Warmup Iteration 14: 486.906 us/op # Warmup Iteration 15: 492.756 us/op # Warmup Iteration 16: 494.186 us/op # Warmup Iteration 17: 494.272 us/op # Warmup Iteration 18: 493.907 us/op # Warmup Iteration 19: 495.726 us/op # Warmup Iteration 20: 495.143 us/op Iteration 1: 489.998 us/op Iteration 2: 494.910 us/op Iteration 3: 496.420 us/op Iteration 4: 490.313 us/op Iteration 5: 493.948 us/op Iteration 6: 498.616 us/op Iteration 7: 498.998 us/op Iteration 8: 496.266 us/op Iteration 9: 488.312 us/op Iteration 10: 497.052 us/op N = 1_000_000 # Fork: 9 of 10 # Warmup: 20 iterations, 1000 ms each # Measurement: 10 iterations, 1000 ms each # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Running: lambda.StreamSumTest.testStreamSeq # Warmup Iteration 1: 548.453 us/op # Warmup Iteration 2: 475.805 us/op # Warmup Iteration 3: 479.079 us/op # Warmup Iteration 4: 481.045 us/op # Warmup Iteration 5: 513.081 us/op # Warmup Iteration 6: 4768.633 us/op # Warmup Iteration 7: 4810.168 us/op # Warmup Iteration 8: 4796.000 us/op # Warmup Iteration 9: 4744.255 us/op # Warmup Iteration 10: 4863.646 us/op # Warmup Iteration 11: 4778.114 us/op # Warmup Iteration 12: 4769.581 us/op # Warmup Iteration 13: 4750.929 us/op # Warmup Iteration 14: 4828.577 us/op # Warmup Iteration 15: 4739.132 us/op # Warmup Iteration 16: 4824.240 us/op # Warmup Iteration 17: 4822.423 us/op # Warmup Iteration 18: 4844.222 us/op # Warmup Iteration 19: 4777.905 us/op # Warmup Iteration 20: 4866.481 us/op Iteration 1: 4832.221 us/op Iteration 2: 4813.486 us/op Iteration 3: 4907.794 us/op Iteration 4: 4861.257 us/op Iteration 5: 4815.668 us/op Iteration 6: 4840.097 us/op Iteration 7: 4861.160 us/op Iteration 8: 5100.909 us/op Iteration 9: 4862.112 us/op Iteration 10: 4863.340 us/op From paul.sandoz at oracle.com Mon Oct 28 10:04:17 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Mon, 28 Oct 2013 18:04:17 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> <526E5C8D.4090207@oracle.com> <526E783F.9000400@oracle.com> <58EFC177-B24E-4B8D-9ADF-68A89E7E8248@oracle.com> Message-ID: On Oct 28, 2013, at 6:01 PM, Paul Sandoz wrote: > On Oct 28, 2013, at 5:15 PM, Paul Sandoz wrote: >> >>> >>> Hmmm. Quite strange. Have to evaluate it. >>> >> >> Doh head hits desk. I forgot that vm flags were not propagated via the options builder to the forked java process: >> >> .jvmArgs("-XX:-TieredCompilation -Dbenchmark.n=" + n) >> >> grrr... sorry for the noise. Re-running... >> > > N = 100_000 > Benchmark Mode Thr Cnt Sec Mean Mean error Units > l.StreamSumTest.testStreamPar avgt 1 100 1 39.105 0.317 us/op > l.StreamSumTest.testStreamSeq avgt 1 100 1 486.373 1.516 us/op > > > N = 1_000_000 > Benchmark Mode Thr Cnt Sec Mean Mean error Units > l.StreamSumTest.testStreamPar avgt 1 100 1 174.094 8.515 us/op > l.StreamSumTest.testStreamSeq avgt 1 100 1 4877.512 18.542 us/op > > > Now i am suspicious of the sequential numbers :-) While i would like to believe them my laptop has only eight hardware threads so 12x and 28x speed ups are highly suspicious. > > When looking at the sequential iterations (see below) i notice a slow down which kicks in after a number of iterations (perhaps proportional N) and i observed the same effect with your test program, the benchmark results for which are: > Sent too soon... i forgot to say i modified your program to remove the capture in the lambdas passed to the map, thus making it equivalent to my test. Paul. From brian.goetz at oracle.com Mon Oct 28 15:32:47 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Mon, 28 Oct 2013 22:32:47 +0000 Subject: hg: lambda/lambda/hotspot: 62 new changesets Message-ID: <20131028223524.9BAFA627B2@hg.openjdk.java.net> Changeset: 02d171a3b5d1 Author: cl Date: 2013-10-10 10:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/02d171a3b5d1 Added tag jdk8-b111 for changeset f6962730bbde ! .hgtags Changeset: 5c599c419c1d Author: hseigel Date: 2013-07-11 12:59 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5c599c419c1d 8016256: Make finalization final Summary: Add private methods to final methods check Reviewed-by: coleenp, acorn, ahgross Contributed-by: harold.seigel at oracle.com ! src/share/vm/classfile/classFileParser.cpp Changeset: d840f02d03b4 Author: chegar Date: 2013-07-15 11:07 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d840f02d03b4 Merge - src/os_cpu/linux_sparc/vm/assembler_linux_sparc.cpp - src/os_cpu/solaris_sparc/vm/assembler_solaris_sparc.cpp Changeset: 7ec210434b3c Author: chegar Date: 2013-07-22 14:01 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/7ec210434b3c Merge - src/share/vm/memory/klassInfoClosure.hpp - src/share/vm/runtime/aprofiler.cpp - src/share/vm/runtime/aprofiler.hpp Changeset: ca9029490fce Author: chegar Date: 2013-07-25 17:35 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ca9029490fce Merge Changeset: 8f66130f7b5c Author: chegar Date: 2013-08-02 11:10 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8f66130f7b5c Merge ! src/share/vm/classfile/classFileParser.cpp Changeset: 38f9393d1847 Author: sgabdura Date: 2013-08-09 11:03 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/38f9393d1847 8020789: Disable exporting of gc.heap_dump diagnostic command Reviewed-by: fparain, ahgross ! src/share/vm/services/diagnosticCommand.cpp Changeset: ee7a7aa7c6bb Author: chegar Date: 2013-08-09 14:30 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ee7a7aa7c6bb Merge Changeset: 8f3c59225a5c Author: chegar Date: 2013-08-15 21:33 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8f3c59225a5c Merge - test/runtime/7196045/Test7196045.java - test/runtime/8000968/Test8000968.sh Changeset: 7638e35cabc6 Author: erikj Date: 2013-08-19 17:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/7638e35cabc6 8015614: Update build settings Reviewed-by: tbell, dholmes, ahgross ! make/windows/makefiles/compile.make ! make/windows/makefiles/sa.make Changeset: d4fa23d6c35b Author: chegar Date: 2013-08-23 22:12 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d4fa23d6c35b Merge - src/os_cpu/bsd_x86/vm/bsd_x86_32.ad - src/os_cpu/bsd_x86/vm/bsd_x86_64.ad - src/os_cpu/linux_x86/vm/linux_x86_32.ad - src/os_cpu/linux_x86/vm/linux_x86_64.ad - src/os_cpu/solaris_sparc/vm/solaris_sparc.ad - src/os_cpu/solaris_x86/vm/solaris_x86_32.ad - src/os_cpu/solaris_x86/vm/solaris_x86_64.ad - src/os_cpu/windows_x86/vm/windows_x86_32.ad - src/os_cpu/windows_x86/vm/windows_x86_64.ad Changeset: 07b5f47d7a18 Author: chegar Date: 2013-08-30 09:50 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/07b5f47d7a18 Merge ! src/share/vm/classfile/classFileParser.cpp Changeset: 98a2169ed7ac Author: iklam Date: 2013-08-24 00:14 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/98a2169ed7ac 8023683: Enhance class file parsing Summary: Use the value returned by REALLOC_RESOURCE_ARRAY() Reviewed-by: coleenp, ahgross ! src/share/vm/classfile/classFileParser.cpp Changeset: 8321dcc18438 Author: chegar Date: 2013-10-13 21:14 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8321dcc18438 Merge ! src/share/vm/classfile/classFileParser.cpp Changeset: deec468baebd Author: amurillo Date: 2013-10-04 14:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/deec468baebd 8025859: new hotspot build - hs25-b54 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 5b3b75d9eb2f Author: coleenp Date: 2013-10-01 14:23 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5b3b75d9eb2f 8025570: Naked oop in test/serviceability/ParserTest Summary: Fix for two naked objArrayOop(s) oops causing test failure Reviewed-by: coleenp, ctornqvi Contributed-by: lois.foltan at oracle.com ! src/share/vm/prims/wbtestmethods/parserTests.cpp Changeset: f21415c32ca1 Author: coleenp Date: 2013-10-01 15:41 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f21415c32ca1 Merge Changeset: d574419c5372 Author: mseledtsov Date: 2013-10-02 15:17 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d574419c5372 8025671: Test name changed, test list not updated. Test6878713.sh Summary: Removed the obsolete test from the test group file Reviewed-by: sla, ctornqvi, dholmes ! test/TEST.groups Changeset: 931f105563c5 Author: coleenp Date: 2013-10-02 13:02 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/931f105563c5 8025569: -XX:+CheckUnhandledOops crashes on Windows Summary: Disable CHECK_UNHANDLED_OOPS in fastdebug builds for JDK 8 on WIndows 32 & 64 bit machines Reviewed-by: coleenp, ctornqvi, zgu Contributed-by: lois.foltan at oracle.com ! make/windows/makefiles/fastdebug.make Changeset: 6f73bc5df986 Author: coleenp Date: 2013-10-02 15:06 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/6f73bc5df986 Merge Changeset: 2bd38d594b9a Author: dsamersoff Date: 2013-10-02 20:58 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/2bd38d594b9a 8025283: Nits in os_bsd file breaks compilation of open hotspot Summary: Couple of nits in os_bsd.cpp brake compilation of open hotspot on non-apple platforms Reviewed-by: sla, sspitsyn ! src/os/bsd/vm/os_bsd.cpp Changeset: 9855f17334d8 Author: dsamersoff Date: 2013-10-03 01:12 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9855f17334d8 Merge Changeset: 5705c7ee6dd7 Author: dsamersoff Date: 2013-10-02 22:27 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5705c7ee6dd7 8025250: SA: Sync linux and bsd versions of ps_core file Summary: linux/ps_core.c and bsd/ps_core.c share most of code, but it has different formatting, comments etc. Reviewed-by: sla, minqi ! agent/src/os/bsd/ps_core.c ! agent/src/os/linux/ps_core.c Changeset: 7ae82c3a781a Author: dsamersoff Date: 2013-10-03 04:42 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/7ae82c3a781a Merge Changeset: faff125a1ead Author: dsamersoff Date: 2013-10-03 12:39 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/faff125a1ead 8022616: u4 should not be used as a type for thread_id Summary: Usage of u4 as a type for thread_id cause a compilation error on platform, where thread_id is a pointer Reviewed-by: sla, sspitsyn, minqi ! src/os/bsd/vm/osThread_bsd.hpp ! src/os/bsd/vm/os_bsd.cpp ! src/os/bsd/vm/os_bsd.hpp Changeset: 07f8c2a453f8 Author: coleenp Date: 2013-10-03 18:53 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/07f8c2a453f8 8025238: nsk/jvmti/scenarios/bcinstr/BI04/bi04t002 crashed with SIGSEGV Summary: Redefined class in stack trace may not be found by method_idnum so handle null. Reviewed-by: sla, dcubed, sspitsyn ! src/share/vm/classfile/javaClasses.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp Changeset: 3374b92de2d9 Author: coleenp Date: 2013-10-03 18:50 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/3374b92de2d9 8025004: -XX:+CheckUnhandledOops asserts for JDK 8 Solaris fastdebug binaries Summary: Remove unnecessary volatile keyword on stack locals within instanceKlass.cpp to work around Solaris Studio C++ compiler issue Reviewed-by: coleenp, dcubed Contributed-by: lois.foltan at oracle.com ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp Changeset: 3bf767171ea4 Author: coleenp Date: 2013-10-05 00:53 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/3bf767171ea4 Merge Changeset: 675ffabf3798 Author: mikael Date: 2013-10-02 09:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/675ffabf3798 8024087: Remove dead JVM_{Get,Set}PrimitiveFieldValues functions Summary: The two functions were used to support JDK 1.3 but are no longer in use Reviewed-by: coleenp, ctornqvi, twisti, dsamersoff ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm_misc.hpp ! src/share/vm/prims/nativeLookup.cpp Changeset: a1fd44b003c7 Author: coleenp Date: 2013-10-05 00:58 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/a1fd44b003c7 Merge Changeset: 4212bfb33d76 Author: coleenp Date: 2013-10-05 03:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4212bfb33d76 Merge Changeset: 2720ab7a0d70 Author: ccheung Date: 2013-10-04 21:00 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/2720ab7a0d70 Merge ! src/share/vm/prims/jvm.cpp Changeset: febab3a8f203 Author: erikj Date: 2013-10-04 12:45 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/febab3a8f203 8007446: Add /MP to cl.exe speeds up windows builds of OpenJDK. Reviewed-by: sla, ctornqvi ! make/windows/makefiles/compile.make ! make/windows/makefiles/sa.make Changeset: 763705f0fec3 Author: sla Date: 2013-10-04 13:01 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/763705f0fec3 8016845: SA is unable to use hsdis on windows Summary: Added sadis.c to the build to provide missing symbols in sawindbg.dll. Added code to use the correct hsdisXXX.dll filename on different windows platforms. Reviewed-by: sla, mgerdin Contributed-by: fredrik.arvidsson at oracle.com ! agent/src/share/classes/sun/jvm/hotspot/asm/Disassembler.java ! make/windows/makefiles/sa.make Changeset: f9be370a7d54 Author: sla Date: 2013-10-05 15:18 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f9be370a7d54 8025922: JNI access to Strings need to check if the value field is non-null Reviewed-by: dholmes, dcubed ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jniCheck.cpp Changeset: 8ef918538e22 Author: sla Date: 2013-10-04 13:44 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8ef918538e22 6313383: SA: Update jmap to support HPROF binary format "JAVA PROFILE 1.0.2" Summary: Adds support for large(>4G) heap dumps in hprof format. Adds tests and updates testlibrary. Reviewed-by: sla, allwin Contributed-by: fredrik.arvidsson at oracle.com ! agent/src/share/classes/sun/jvm/hotspot/utilities/AbstractHeapGraphWriter.java ! agent/src/share/classes/sun/jvm/hotspot/utilities/HeapHprofBinWriter.java ! test/TEST.groups + test/serviceability/sa/jmap-hprof/JMapHProfLargeHeapProc.java + test/serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java ! test/testlibrary/com/oracle/java/testlibrary/JDKToolLauncher.java Changeset: 9c63ad02c0a4 Author: sla Date: 2013-10-05 10:56 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9c63ad02c0a4 Merge Changeset: cc4f5f8d885e Author: mseledtsov Date: 2013-10-06 16:13 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/cc4f5f8d885e 8023796: [TESTBUG] Add -XX:-TransmitErrorReport to runtime/6888954/vmerrors.sh Summary: added -XX:-TransmitErrorReport to the test Reviewed-by: stefank, ctornqvi ! test/runtime/6888954/vmerrors.sh ! test/runtime/memory/ReserveMemory.java Changeset: ac9cb1d5a202 Author: acorn Date: 2013-10-07 12:20 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ac9cb1d5a202 8009130: Lambda: Fix access controls, loader constraints. Summary: New default methods list with inherited superinterface methods Reviewed-by: minqi, sspitsyn, coleenp ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/interpreter/linkResolver.hpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/oops/klassVtable.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/runtime/reflectionUtils.cpp ! src/share/vm/runtime/reflectionUtils.hpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 615d83933195 Author: dholmes Date: 2013-10-08 02:56 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/615d83933195 8026025: JVM_GetCallerClass allows Reflection.getCallerClass(int depth) to use Reviewed-by: alanb, dholmes, twisti Contributed-by: mandy.chung at oracle.com ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h Changeset: c90e76575b03 Author: kevinw Date: 2013-10-08 09:33 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c90e76575b03 8019375: Internal symbol table size should be tunable. Reviewed-by: coleenp, kamg ! agent/src/share/classes/sun/jvm/hotspot/memory/SymbolTable.java ! src/share/vm/classfile/symbolTable.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/globalDefinitions.hpp Changeset: ced68a57cdbd Author: kevinw Date: 2013-10-08 11:37 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ced68a57cdbd Merge Changeset: c72075c2883e Author: acorn Date: 2013-10-08 16:58 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c72075c2883e 8026022: Verifier: allow anon classes to invokespecial host class/intf methods. Reviewed-by: coleenp, bharadwaj ! src/share/vm/classfile/verifier.cpp Changeset: d25557d03ec0 Author: acorn Date: 2013-10-09 17:57 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d25557d03ec0 8026185: nsk/jvmit/GetMethodDeclaringClass/declcls001 failed Summary: Missed initialization. Thanks Coleen. Reviewed-by: coleenp, minqi ! src/share/vm/oops/instanceKlass.cpp Changeset: c01f4910f5f5 Author: ccheung Date: 2013-10-10 13:25 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c01f4910f5f5 Merge Changeset: 9b4d0569f2f4 Author: jwilhelm Date: 2013-10-03 21:36 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9b4d0569f2f4 8025852: Remove unnecessary setters in collector policy classes Summary: Use instance variables directly within the collector policy classes and remove unused setters. Reviewed-by: tschatzl, jcoomes ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/collectorPolicy.hpp Changeset: 087f02e22fc2 Author: jwilhelm Date: 2013-10-04 22:08 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/087f02e22fc2 8025854: Use "young gen" instead of "eden" Summary: Changed a few descriptions and variable names to young gen. Reviewed-by: tschatzl, jcoomes ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/runtime/arguments.cpp Changeset: 263f2c796d6c Author: stefank Date: 2013-10-05 10:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/263f2c796d6c 8024838: Significant slowdown due to transparent huge pages Summary: Don't turn on transparent huge pages (-XX:+UseTransparentHugePages) unless explicitly specified on the command line. This has the effect that large pages are never turned on Linux unless the user has explicitly enabled any of the large pages flags: -XX:+UseLargePages, -XX:+UseTransparentHugePages, -XX:+UseHugeTLBFS, and -XX:+UseSHM. Reviewed-by: jwilhelm, tschatzl, brutisso ! src/os/linux/vm/globals_linux.hpp ! src/os/linux/vm/os_linux.cpp + test/runtime/memory/LargePages/TestLargePagesFlags.java Changeset: 8618e0d7735b Author: stefank Date: 2013-10-05 08:01 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8618e0d7735b Merge Changeset: 04b18a42c2f3 Author: mgerdin Date: 2013-10-04 13:33 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/04b18a42c2f3 8025526: VirtualSpace should support per-instance disabling of large pages Summary: Add a new initialization function to VirtualSpace which allows the caller to override the max commit granularity. Reviewed-by: stefank, ehelin, tschatzl ! src/share/vm/runtime/virtualspace.cpp ! src/share/vm/runtime/virtualspace.hpp Changeset: 69944b868a32 Author: mgerdin Date: 2013-10-08 17:35 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/69944b868a32 8014555: G1: Memory ordering problem with Conc refinement and card marking Summary: Add a StoreLoad barrier in the G1 post-barrier to fix a race with concurrent refinement. Also-reviewed-by: martin.doerr at sap.com Reviewed-by: iveresov, tschatzl, brutisso, roland, kvn ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/macroAssembler_sparc.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.inline.hpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp ! src/share/vm/gc_implementation/g1/ptrQueue.hpp ! src/share/vm/opto/graphKit.cpp Changeset: b4d8a3d4db73 Author: tamao Date: 2013-10-09 11:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b4d8a3d4db73 8010506: Typos and errors in descriptions of vm options in globals.hpp Summary: Fix typos and errors in descriptions of vm options in globals.hpp Reviewed-by: jmasa, jwilhelm ! src/share/vm/runtime/globals.hpp Changeset: 82af7d7a0128 Author: tschatzl Date: 2013-10-09 10:57 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/82af7d7a0128 8003420: NPG: make new GC root for pd_set Summary: Move protection domain oops from system dictionary entries into a seperate set; the system dictionary references entries in that set now. This allows fast iteration during non-classunloading garbage collection. Implementation based on initial prototype from Ioi Lam (iklam). Reviewed-by: coleenp, iklam + agent/src/share/classes/sun/jvm/hotspot/memory/ProtectionDomainCacheEntry.java ! agent/src/share/classes/sun/jvm/hotspot/memory/ProtectionDomainEntry.java ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/globalDefinitions.hpp Changeset: 85c1ca43713f Author: stefank Date: 2013-10-07 15:51 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/85c1ca43713f 8024547: MaxMetaspaceSize should limit the committed memory used by the metaspaces Reviewed-by: brutisso, jmasa, coleenp ! src/share/vm/gc_implementation/shared/vmGCOperations.hpp ! src/share/vm/gc_interface/collectedHeap.cpp ! src/share/vm/gc_interface/collectedHeap.hpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/filemap.hpp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: a6414751d537 Author: stefank Date: 2013-10-07 15:51 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/a6414751d537 8025996: Track metaspace usage when metaspace is expanded Reviewed-by: coleenp, ehelin ! src/share/vm/memory/metaspace.cpp ! src/share/vm/services/memoryService.hpp Changeset: aa6f2ea19d8f Author: jcoomes Date: 2013-10-11 08:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/aa6f2ea19d8f Merge ! src/os/linux/vm/os_linux.cpp ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.cpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/utilities/globalDefinitions.hpp Changeset: 4a845c7a4638 Author: amurillo Date: 2013-10-11 13:00 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4a845c7a4638 Merge Changeset: 0ed9a90f45e1 Author: amurillo Date: 2013-10-11 13:00 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/0ed9a90f45e1 Added tag hs25-b54 for changeset 4a845c7a4638 ! .hgtags Changeset: aeae561a6d0b Author: cl Date: 2013-10-17 09:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/aeae561a6d0b Added tag jdk8-b112 for changeset 0ed9a90f45e1 ! .hgtags Changeset: 1a93f2c5945a Author: lana Date: 2013-10-17 14:20 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1a93f2c5945a Merge ! make/windows/makefiles/compile.make ! make/windows/makefiles/sa.make ! src/share/vm/classfile/classFileParser.cpp Changeset: e39b138b2518 Author: acorn Date: 2013-10-19 18:32 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e39b138b2518 8026893: Push 8026365 to TL early and add test Reviewed-by: dcubed, kamg ! src/share/vm/classfile/verifier.cpp ! test/TEST.groups + test/runtime/8026365/InvokeSpecialAnonTest.java Changeset: aecf0d7dd6b9 Author: briangoetz Date: 2013-10-28 18:30 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/aecf0d7dd6b9 Merge ! .hgtags - .jcheck/conf ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/classfile/dictionary.cpp ! src/share/vm/classfile/dictionary.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/verifier.cpp ! src/share/vm/code/dependencies.cpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klassVtable.cpp ! src/share/vm/oops/klassVtable.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/prims/jvm.h ! src/share/vm/prims/methodHandles.cpp ! src/share/vm/runtime/globals.hpp From brian.goetz at oracle.com Mon Oct 28 15:35:07 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Mon, 28 Oct 2013 22:35:07 +0000 Subject: hg: lambda/lambda/corba: 25 new changesets Message-ID: <20131028223526.2EC30627B3@hg.openjdk.java.net> Changeset: d7e478820c56 Author: cl Date: 2013-10-10 10:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/d7e478820c56 Added tag jdk8-b111 for changeset 85c1c94e7235 ! .hgtags Changeset: 81d694b1ab2f Author: msheppar Date: 2013-06-14 16:31 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/81d694b1ab2f 8011157: Improve CORBA portablility Summary: fix also reviewed by Alexander Fomin Reviewed-by: alanb, coffeys, skoivu ! src/share/classes/com/sun/corba/se/impl/transport/SelectorImpl.java ! src/share/classes/sun/rmi/rmic/iiop/StubGenerator.java Changeset: ab6eae733bce Author: chegar Date: 2013-07-15 11:04 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/ab6eae733bce Merge Changeset: e5ea72df9806 Author: chegar Date: 2013-07-22 13:59 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/e5ea72df9806 Merge Changeset: be4fdc568d73 Author: mchung Date: 2013-07-22 19:38 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/be4fdc568d73 8017196: Ensure Proxies are handled appropriately Reviewed-by: dfuchs, jrose, jdn, ahgross, chegar ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/InvocationHandlerFactoryImpl.java ! src/share/classes/com/sun/corba/se/spi/orbutil/proxy/CompositeInvocationHandlerImpl.java Changeset: b0aeb77f0292 Author: chegar Date: 2013-07-25 17:32 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/b0aeb77f0292 Merge Changeset: a72f506e3058 Author: chegar Date: 2013-08-02 09:38 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/a72f506e3058 Merge Changeset: 0717fc6f2960 Author: chegar Date: 2013-08-09 14:24 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/0717fc6f2960 Merge Changeset: 6b5db99e194c Author: chegar Date: 2013-08-15 21:33 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/6b5db99e194c Merge - src/share/classes/com/sun/corba/se/impl/copyobject/JavaInputStream.sjava - src/share/classes/com/sun/corba/se/impl/copyobject/JavaOutputStream.sjava - src/share/classes/com/sun/corba/se/impl/interceptors/ThreadCurrentStack.sjava - src/share/classes/com/sun/corba/se/impl/orbutil/DefineWrapper.sjava - src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl_save.sjava - src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLTypesUtil_save.sjava - src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalClientRequestImpl.sjava - src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalClientResponseImpl.sjava - src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalServerRequestImpl.sjava - src/share/classes/com/sun/corba/se/impl/protocol/oldlocal/LocalServerResponseImpl.sjava - src/share/classes/com/sun/corba/se/impl/transport/BufferConnectionImpl.sjava Changeset: 9c75c61d97f8 Author: msheppar Date: 2013-08-19 15:22 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/9c75c61d97f8 8022940: Enhance CORBA translations Reviewed-by: coffeys, alanb, skoivu ! src/share/classes/com/sun/corba/se/impl/presentation/rmi/IDLNameTranslatorImpl.java Changeset: 2caa37dfd7cd Author: chegar Date: 2013-08-23 22:11 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/2caa37dfd7cd Merge Changeset: a5788ab042dc Author: chegar Date: 2013-08-30 09:48 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/a5788ab042dc Merge Changeset: 118a211bb3ba Author: chegar Date: 2013-09-06 09:48 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/118a211bb3ba Merge Changeset: cc52d582df09 Author: chegar Date: 2013-09-14 19:40 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/cc52d582df09 Merge Changeset: 396854c032bb Author: chegar Date: 2013-10-03 19:11 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/396854c032bb Merge Changeset: 47513cdce4ed Author: chegar Date: 2013-10-13 22:00 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/47513cdce4ed Merge Changeset: 438c54c148a6 Author: erikj Date: 2013-10-16 13:49 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/438c54c148a6 6604021: RMIC is defaulting to BOOT jdk version, needs to be rmic.jar Reviewed-by: dholmes, chegar ! makefiles/BuildCorba.gmk Changeset: 1a71d800b032 Author: wetmore Date: 2013-10-16 23:31 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/1a71d800b032 8026762: jdk8-tl builds windows builds failing in corba - javac: no source files Reviewed-by: katleman, dholmes ! makefiles/BuildCorba.gmk Changeset: 66fc1a749867 Author: ihse Date: 2013-10-10 14:58 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/66fc1a749867 8001931: The new build system whitespace cleanup Reviewed-by: tbell, simonis, erikj ! makefiles/BuildCorba.gmk ! makefiles/Makefile Changeset: 43cec76d1d62 Author: katleman Date: 2013-10-16 11:55 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/43cec76d1d62 Merge Changeset: 54aa9b7d743d Author: cl Date: 2013-10-17 09:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/54aa9b7d743d Added tag jdk8-b112 for changeset 43cec76d1d62 ! .hgtags Changeset: 1c01208087b5 Author: lana Date: 2013-10-17 14:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/1c01208087b5 Merge ! makefiles/BuildCorba.gmk Changeset: 52ad44f9a3ec Author: alanb Date: 2013-10-22 11:40 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/52ad44f9a3ec 8021257: com.sun.corba.se.** should be on restricted package list Reviewed-by: chegar, coffeys, smarks Contributed-by: alan.bateman at oralce.com, mark.sheppard at oracle.com ! src/share/classes/javax/rmi/CORBA/Stub.java ! src/share/classes/javax/rmi/CORBA/Util.java ! src/share/classes/javax/rmi/PortableRemoteObject.java ! src/share/classes/org/omg/CORBA/ORB.java Changeset: a90e9efa4264 Author: coffeys Date: 2013-10-23 16:45 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/a90e9efa4264 5036554: unmarshal error on CORBA alias type in CORBA any Reviewed-by: chegar, smarks ! src/share/classes/com/sun/corba/se/impl/corba/AnyImpl.java Changeset: 08857a02d1a6 Author: briangoetz Date: 2013-10-28 18:31 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/08857a02d1a6 Merge ! .hgtags From brian.goetz at oracle.com Mon Oct 28 15:36:21 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Mon, 28 Oct 2013 22:36:21 +0000 Subject: hg: lambda/lambda: 40 new changesets Message-ID: <20131028223624.98D5B627B5@hg.openjdk.java.net> Changeset: 187a759c08ba Author: alanb Date: 2013-10-02 04:21 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/rev/187a759c08ba 8006843: org.w3c.dom.events.UIEvent.getView is specified to return type that is not in the Java SE specification Reviewed-by: mduigou, tbell ! common/makefiles/javadoc/CORE_PKGS.gmk Changeset: 6b8f5030e5ad Author: bpatel Date: 2013-10-04 15:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/6b8f5030e5ad 8025741: Fix jdk/make/docs/Makefile to point to correct docs URL for JDK 8. Reviewed-by: tbell ! common/makefiles/javadoc/Javadoc.gmk Changeset: 4d23143c676a Author: lana Date: 2013-10-10 08:49 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/4d23143c676a Merge Changeset: 82a36c5c4eaf Author: cl Date: 2013-10-10 10:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/82a36c5c4eaf Added tag jdk8-b111 for changeset d086227bfc45 ! .hgtags Changeset: fd3b32cc4b6e Author: lana Date: 2013-10-10 21:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/fd3b32cc4b6e Merge Changeset: 3f9873789d44 Author: mduigou Date: 2013-10-11 15:20 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/3f9873789d44 8025796: hgforest.sh could trigger unbuffered output from hg without complicated machinations Reviewed-by: mduigou Contributed-by: Dmitry Samersoff ! common/bin/hgforest.sh Changeset: 7c0e2fd8be4d Author: lana Date: 2013-10-08 14:54 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/7c0e2fd8be4d Merge Changeset: 3ece65f23ed2 Author: lana Date: 2013-10-11 00:06 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/3ece65f23ed2 Merge Changeset: d35943431696 Author: lana Date: 2013-10-11 21:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/d35943431696 Merge Changeset: af87dabb4263 Author: msheppar Date: 2013-06-14 15:49 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/rev/af87dabb4263 8011157: Improve CORBA portablility Summary: fix also reviewed by Alexander Fomin Reviewed-by: alanb, coffeys, skoivu ! common/makefiles/RMICompilation.gmk Changeset: ce8c63017f11 Author: chegar Date: 2013-10-13 21:37 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/rev/ce8c63017f11 Merge Changeset: 28be3d174c92 Author: chegar Date: 2013-10-15 13:39 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/rev/28be3d174c92 Merge Changeset: af81988013b5 Author: erikj Date: 2013-10-16 13:50 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/af81988013b5 6604021: RMIC is defaulting to BOOT jdk version, needs to be rmic.jar Reviewed-by: dholmes, chegar ! common/makefiles/JavaCompilation.gmk ! common/makefiles/RMICompilation.gmk Changeset: 9ec6626d43bb Author: mduigou Date: 2013-10-17 14:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/9ec6626d43bb 8026062: webrev.ksh: fix bug title web scraping, remove teamware, sac, "open bug", -l and wxfile support Reviewed-by: weijun, dsamersoff, darcy, jrose, tbell ! make/scripts/webrev.ksh Changeset: 7dea0ce25bdc Author: pbhat Date: 2013-05-30 16:00 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/7dea0ce25bdc Merge ! common/autoconf/generated-configure.sh Changeset: d081bdbf904d Author: jqzuo Date: 2013-06-10 16:15 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/d081bdbf904d Merge ! common/autoconf/generated-configure.sh Changeset: b59990653fb9 Author: pbhat Date: 2013-06-21 18:56 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/b59990653fb9 Merge ! common/autoconf/generated-configure.sh Changeset: dd345e4b51fb Author: pbhat Date: 2013-07-05 11:00 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/dd345e4b51fb Merge ! common/autoconf/generated-configure.sh Changeset: 24cc2d9b0af5 Author: pbhat Date: 2013-07-18 16:49 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/24cc2d9b0af5 Merge ! common/autoconf/generated-configure.sh Changeset: 4a4c9e7bc6c9 Author: pbhat Date: 2013-07-25 17:26 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/4a4c9e7bc6c9 Merge Changeset: 63d794ade242 Author: pbhat Date: 2013-08-02 09:41 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/63d794ade242 Merge Changeset: a5485b9a2d14 Author: pbhat Date: 2013-08-09 14:54 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/a5485b9a2d14 Merge Changeset: 028ac95111b9 Author: pbhat Date: 2013-08-16 14:33 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/028ac95111b9 Merge Changeset: 4b686cbc32c7 Author: pbhat Date: 2013-08-23 09:45 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/4b686cbc32c7 Merge ! common/autoconf/generated-configure.sh Changeset: ec583e324aaf Author: pbhat Date: 2013-08-30 10:14 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/ec583e324aaf Merge ! common/autoconf/generated-configure.sh Changeset: 96f00091b570 Author: pbhat Date: 2013-09-05 11:23 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/96f00091b570 Merge ! common/autoconf/generated-configure.sh Changeset: 69096d4b1da2 Author: pbhat Date: 2013-09-12 12:08 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/69096d4b1da2 Merge ! common/autoconf/generated-configure.sh Changeset: 5a306baf3bb7 Author: pbhat Date: 2013-09-19 14:01 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/5a306baf3bb7 Merge ! common/autoconf/generated-configure.sh Changeset: 88ca3ff9ce2d Author: billyh Date: 2013-09-25 10:50 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/88ca3ff9ce2d 8025262: new64jre/new64jdk wrappers should be removed, build 32-bit AU during windows-amd64 builds instead Reviewed-by: amenkov, jqzuo ! make/install-rules.gmk Changeset: c8066e5d7a7b Author: pbhat Date: 2013-09-26 11:20 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/c8066e5d7a7b Merge Changeset: 00ae95ca1755 Author: pbhat Date: 2013-10-03 09:52 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/00ae95ca1755 Merge Changeset: 7deff16cf438 Author: jqzuo Date: 2013-10-14 18:53 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/7deff16cf438 Merge ! common/autoconf/generated-configure.sh Changeset: ec48d637778a Author: tbell Date: 2013-10-09 18:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/ec48d637778a 8023611: Win32 and win64: Remove all the WARNINGS in JDK 8 builds for Windows 2008 and MSVS 2010 SP1 Reviewed-by: erikj ! common/autoconf/generated-configure.sh ! common/autoconf/toolchain.m4 Changeset: 174a54ce39c4 Author: ihse Date: 2013-10-10 14:58 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/174a54ce39c4 8001931: The new build system whitespace cleanup Reviewed-by: tbell, simonis, erikj ! NewMakefile.gmk ! common/autoconf/autogen.sh ! common/autoconf/basics.m4 ! common/autoconf/basics_windows.m4 ! common/autoconf/boot-jdk.m4 ! common/autoconf/bootcycle-spec.gmk.in ! common/autoconf/build-aux/config.guess ! common/autoconf/build-performance.m4 ! common/autoconf/builddeps.conf.example ! common/autoconf/builddeps.conf.nfs.example ! common/autoconf/builddeps.m4 ! common/autoconf/compare.sh.in ! common/autoconf/config.h.in ! common/autoconf/configure ! common/autoconf/configure.ac ! common/autoconf/generated-configure.sh ! common/autoconf/help.m4 ! common/autoconf/hotspot-spec.gmk.in ! common/autoconf/jdk-options.m4 ! common/autoconf/libraries.m4 ! common/autoconf/platform.m4 ! common/autoconf/source-dirs.m4 ! common/autoconf/spec.gmk.in ! common/autoconf/toolchain.m4 ! common/autoconf/toolchain_windows.m4 ! common/makefiles/HotspotWrapper.gmk ! common/makefiles/IdlCompilation.gmk ! common/makefiles/JavaCompilation.gmk ! common/makefiles/Jprt.gmk ! common/makefiles/Main.gmk ! common/makefiles/MakeBase.gmk ! common/makefiles/MakeHelpers.gmk ! common/makefiles/NativeCompilation.gmk ! common/makefiles/RMICompilation.gmk ! common/makefiles/devkit/Makefile ! common/makefiles/devkit/Tools.gmk ! common/makefiles/javadoc/CORE_PKGS.gmk ! common/makefiles/javadoc/Javadoc.gmk ! common/makefiles/javadoc/NON_CORE_PKGS.gmk ! common/makefiles/javadoc/Notes.html Changeset: 6274d4cd22d3 Author: erikj Date: 2013-10-14 11:54 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/6274d4cd22d3 8025921: Make LOG=debug output more readable Reviewed-by: tbell, ihse ! common/makefiles/JavaCompilation.gmk ! common/makefiles/MakeBase.gmk Changeset: 547316ea137d Author: katleman Date: 2013-10-16 11:55 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/547316ea137d Merge ! common/autoconf/generated-configure.sh ! common/makefiles/javadoc/CORE_PKGS.gmk ! common/makefiles/javadoc/Javadoc.gmk Changeset: ac748011cbbf Author: cl Date: 2013-10-17 09:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/ac748011cbbf Added tag jdk8-b112 for changeset 547316ea137d ! .hgtags Changeset: 77473affb9c0 Author: lana Date: 2013-10-17 13:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/77473affb9c0 Merge ! common/makefiles/JavaCompilation.gmk ! common/makefiles/RMICompilation.gmk Changeset: 35c14ec3e12f Author: lana Date: 2013-10-17 15:50 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/35c14ec3e12f Merge Changeset: 5e1d676ceb19 Author: briangoetz Date: 2013-10-28 18:31 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/5e1d676ceb19 Merge ! .hgtags ! common/autoconf/builddeps.m4 ! common/autoconf/configure ! common/autoconf/generated-configure.sh ! common/bin/hgforest.sh ! common/makefiles/JavaCompilation.gmk ! common/makefiles/Main.gmk ! common/makefiles/javadoc/CORE_PKGS.gmk ! common/makefiles/javadoc/Javadoc.gmk From brian.goetz at oracle.com Mon Oct 28 15:32:09 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Mon, 28 Oct 2013 22:32:09 +0000 Subject: hg: lambda/lambda/langtools: 100 new changesets Message-ID: <20131028223919.7F23F627B6@hg.openjdk.java.net> Changeset: 16194509e483 Author: vromero Date: 2013-09-27 10:24 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/16194509e483 8024497: crash returning this-referencing lambda from default method Reviewed-by: jjg, rfield ! src/share/classes/com/sun/tools/javac/code/Symbol.java + test/tools/javac/lambda/8024497/CrashUsingReturningThisRefLambdaFromDefaultMetTest.java Changeset: b7d8b71e1658 Author: jlahoda Date: 2013-09-27 17:28 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/b7d8b71e1658 8022765: Compiler crashes with exception on wrong usage of an annotation. Summary: Error recovery for incorrect annotation attribute values - ensure the values are always attributed appropriately Reviewed-by: jfranck, jjg ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/annotations/neg/8022765/T8022765.java + test/tools/javac/annotations/neg/8022765/T8022765.out + test/tools/javac/annotations/neg/8022765/VerifyAnnotationsAttributed.java Changeset: 2c24a04ebfb4 Author: kizune Date: 2013-09-27 21:20 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/2c24a04ebfb4 6978886: javadoc shows stacktrace after print error resulting from disk full Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java Changeset: 699b86e82656 Author: sogoel Date: 2013-09-27 10:39 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/699b86e82656 8025537: Convert 2 javac/enumdeclarations tests in jtreg for regression ws Reviewed-by: jjg + test/tools/javac/enum/EnumAsIdentifier.java + test/tools/javac/enum/EnumAsIdentifier.out + test/tools/javac/enum/EnumAsIdentifier4.out + test/tools/javac/enum/EnumAsIdentifier5.out + test/tools/javac/enum/EnumMembersOrder.java + test/tools/javac/enum/EnumMembersOrder.out Changeset: 4ed8565fa536 Author: mduigou Date: 2013-09-27 11:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/4ed8565fa536 8024842: Define ABS_TEST_OUTPUT_DIR via TEST_OUTPUT_DIR Reviewed-by: ihse, erikj, vromero ! test/Makefile Changeset: dee28dd47e12 Author: rfield Date: 2013-09-27 13:06 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/dee28dd47e12 8025548: langtools test tools/javac/lambda/methodReference/BridgeMethod.java incorrectly assumes no other methods generated in lambda class Reviewed-by: vromero ! test/tools/javac/lambda/methodReference/BridgeMethod.java Changeset: 82044fe8c7f7 Author: ksrini Date: 2013-09-27 16:05 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/82044fe8c7f7 8015073: c.s.t.javac.api.JavacTool.getTask() - more informative exception Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/api/JavacTool.java ! test/tools/javac/api/TestJavacTask.java Changeset: 34223fc58c1a Author: lana Date: 2013-09-27 18:38 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/34223fc58c1a Merge Changeset: 84161510f257 Author: emc Date: 2013-09-28 13:46 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/84161510f257 8025413: NPE in Type.java due to recent change Summary: isCompound throws a NPE for noType and other types. Made it return a reasonable result instead. Reviewed-by: jjg, vromero ! src/share/classes/com/sun/tools/javac/code/Type.java + test/tools/javac/processing/model/type/InheritedAP.java Changeset: 1a3e8347f3dd Author: kizune Date: 2013-10-01 17:03 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1a3e8347f3dd 7118749: NPE in CreateSymbols caused by bad diagnostic Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java Changeset: de1c5dbe6c28 Author: emc Date: 2013-10-01 17:41 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/de1c5dbe6c28 8021339: Compile-time error during casting array to intersection Summary: Add ability to have arrays in intersection types. Reviewed-by: jjg, vromero ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/ArraysInIntersections.java + test/tools/javac/InferArraysInIntersections.java ! test/tools/javac/generics/typevars/6680106/T6680106.out Changeset: 1e6088da1740 Author: vromero Date: 2013-10-02 17:04 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1e6088da1740 8023679: Improve error message for '_' used as a lambda parameter name Reviewed-by: jjg, dlsmith ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties + test/tools/javac/diags/examples/UnderscoreInLambdaExpression.java Changeset: c13305cf8528 Author: jlahoda Date: 2013-10-04 08:29 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/c13305cf8528 8025118: Annotation processing api returns default modifier for interface without default methods Summary: TypeElement.getModifiers() should not contain Modifier.DEFAULT Reviewed-by: darcy, jjg ! src/share/classes/com/sun/tools/javac/code/Symbol.java + test/tools/javac/processing/model/element/TestTypeElement.java Changeset: c0d44b1e6b6a Author: kizune Date: 2013-10-04 19:38 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/c0d44b1e6b6a 7096170: should remove unused support for enabling javac logging Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Changeset: 379c04c090cf Author: darcy Date: 2013-10-04 10:00 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/379c04c090cf 8025913: Rename jdk.Supported to jdk.Exported Reviewed-by: psandoz, forax, lancea, alanb, mchung, jjg ! src/share/classes/com/sun/source/doctree/AttributeTree.java ! src/share/classes/com/sun/source/doctree/AuthorTree.java ! src/share/classes/com/sun/source/doctree/BlockTagTree.java ! src/share/classes/com/sun/source/doctree/CommentTree.java ! src/share/classes/com/sun/source/doctree/DeprecatedTree.java ! src/share/classes/com/sun/source/doctree/DocCommentTree.java ! src/share/classes/com/sun/source/doctree/DocRootTree.java ! src/share/classes/com/sun/source/doctree/DocTree.java ! src/share/classes/com/sun/source/doctree/DocTreeVisitor.java ! src/share/classes/com/sun/source/doctree/EndElementTree.java ! src/share/classes/com/sun/source/doctree/EntityTree.java ! src/share/classes/com/sun/source/doctree/ErroneousTree.java ! src/share/classes/com/sun/source/doctree/IdentifierTree.java ! src/share/classes/com/sun/source/doctree/InheritDocTree.java ! src/share/classes/com/sun/source/doctree/InlineTagTree.java ! src/share/classes/com/sun/source/doctree/LinkTree.java ! src/share/classes/com/sun/source/doctree/LiteralTree.java ! src/share/classes/com/sun/source/doctree/ParamTree.java ! src/share/classes/com/sun/source/doctree/ReferenceTree.java ! src/share/classes/com/sun/source/doctree/ReturnTree.java ! src/share/classes/com/sun/source/doctree/SeeTree.java ! src/share/classes/com/sun/source/doctree/SerialDataTree.java ! src/share/classes/com/sun/source/doctree/SerialFieldTree.java ! src/share/classes/com/sun/source/doctree/SerialTree.java ! src/share/classes/com/sun/source/doctree/SinceTree.java ! src/share/classes/com/sun/source/doctree/StartElementTree.java ! src/share/classes/com/sun/source/doctree/TextTree.java ! src/share/classes/com/sun/source/doctree/ThrowsTree.java ! src/share/classes/com/sun/source/doctree/UnknownBlockTagTree.java ! src/share/classes/com/sun/source/doctree/UnknownInlineTagTree.java ! src/share/classes/com/sun/source/doctree/ValueTree.java ! src/share/classes/com/sun/source/doctree/VersionTree.java ! src/share/classes/com/sun/source/doctree/package-info.java ! src/share/classes/com/sun/source/tree/AnnotatedTypeTree.java ! src/share/classes/com/sun/source/tree/AnnotationTree.java ! src/share/classes/com/sun/source/tree/ArrayAccessTree.java ! src/share/classes/com/sun/source/tree/ArrayTypeTree.java ! src/share/classes/com/sun/source/tree/AssertTree.java ! src/share/classes/com/sun/source/tree/AssignmentTree.java ! src/share/classes/com/sun/source/tree/BinaryTree.java ! src/share/classes/com/sun/source/tree/BlockTree.java ! src/share/classes/com/sun/source/tree/BreakTree.java ! src/share/classes/com/sun/source/tree/CaseTree.java ! src/share/classes/com/sun/source/tree/CatchTree.java ! src/share/classes/com/sun/source/tree/ClassTree.java ! src/share/classes/com/sun/source/tree/CompilationUnitTree.java ! src/share/classes/com/sun/source/tree/CompoundAssignmentTree.java ! src/share/classes/com/sun/source/tree/ConditionalExpressionTree.java ! src/share/classes/com/sun/source/tree/ContinueTree.java ! src/share/classes/com/sun/source/tree/DoWhileLoopTree.java ! src/share/classes/com/sun/source/tree/EmptyStatementTree.java ! src/share/classes/com/sun/source/tree/EnhancedForLoopTree.java ! src/share/classes/com/sun/source/tree/ErroneousTree.java ! src/share/classes/com/sun/source/tree/ExpressionStatementTree.java ! src/share/classes/com/sun/source/tree/ExpressionTree.java ! src/share/classes/com/sun/source/tree/ForLoopTree.java ! src/share/classes/com/sun/source/tree/IdentifierTree.java ! src/share/classes/com/sun/source/tree/IfTree.java ! src/share/classes/com/sun/source/tree/ImportTree.java ! src/share/classes/com/sun/source/tree/InstanceOfTree.java ! src/share/classes/com/sun/source/tree/IntersectionTypeTree.java ! src/share/classes/com/sun/source/tree/LabeledStatementTree.java ! src/share/classes/com/sun/source/tree/LambdaExpressionTree.java ! src/share/classes/com/sun/source/tree/LineMap.java ! src/share/classes/com/sun/source/tree/LiteralTree.java ! src/share/classes/com/sun/source/tree/MemberReferenceTree.java ! src/share/classes/com/sun/source/tree/MemberSelectTree.java ! src/share/classes/com/sun/source/tree/MethodInvocationTree.java ! src/share/classes/com/sun/source/tree/MethodTree.java ! src/share/classes/com/sun/source/tree/ModifiersTree.java ! src/share/classes/com/sun/source/tree/NewArrayTree.java ! src/share/classes/com/sun/source/tree/NewClassTree.java ! src/share/classes/com/sun/source/tree/ParameterizedTypeTree.java ! src/share/classes/com/sun/source/tree/ParenthesizedTree.java ! src/share/classes/com/sun/source/tree/PrimitiveTypeTree.java ! src/share/classes/com/sun/source/tree/ReturnTree.java ! src/share/classes/com/sun/source/tree/Scope.java ! src/share/classes/com/sun/source/tree/StatementTree.java ! src/share/classes/com/sun/source/tree/SwitchTree.java ! src/share/classes/com/sun/source/tree/SynchronizedTree.java ! src/share/classes/com/sun/source/tree/ThrowTree.java ! src/share/classes/com/sun/source/tree/Tree.java ! src/share/classes/com/sun/source/tree/TreeVisitor.java ! src/share/classes/com/sun/source/tree/TryTree.java ! src/share/classes/com/sun/source/tree/TypeCastTree.java ! src/share/classes/com/sun/source/tree/TypeParameterTree.java ! src/share/classes/com/sun/source/tree/UnaryTree.java ! src/share/classes/com/sun/source/tree/UnionTypeTree.java ! src/share/classes/com/sun/source/tree/VariableTree.java ! src/share/classes/com/sun/source/tree/WhileLoopTree.java ! src/share/classes/com/sun/source/tree/WildcardTree.java ! src/share/classes/com/sun/source/tree/package-info.java ! src/share/classes/com/sun/source/util/DocSourcePositions.java ! src/share/classes/com/sun/source/util/DocTreePath.java ! src/share/classes/com/sun/source/util/DocTreePathScanner.java ! src/share/classes/com/sun/source/util/DocTreeScanner.java ! src/share/classes/com/sun/source/util/DocTrees.java ! src/share/classes/com/sun/source/util/JavacTask.java ! src/share/classes/com/sun/source/util/Plugin.java ! src/share/classes/com/sun/source/util/SimpleDocTreeVisitor.java ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/share/classes/com/sun/source/util/SourcePositions.java ! src/share/classes/com/sun/source/util/TaskEvent.java ! src/share/classes/com/sun/source/util/TaskListener.java ! src/share/classes/com/sun/source/util/TreePath.java ! src/share/classes/com/sun/source/util/TreePathScanner.java ! src/share/classes/com/sun/source/util/TreeScanner.java ! src/share/classes/com/sun/source/util/Trees.java ! src/share/classes/com/sun/source/util/package-info.java ! src/share/classes/com/sun/tools/javac/Main.java + src/share/classes/jdk/Exported.java - src/share/classes/jdk/Supported.java Changeset: 6e186ca11ec0 Author: bpatel Date: 2013-10-04 13:32 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/6e186ca11ec0 8008164: Invisible table captions in javadoc-generated html Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css + test/com/sun/javadoc/testHtmlTableStyles/TestHtmlTableStyles.java + test/com/sun/javadoc/testHtmlTableStyles/pkg1/TestTable.java + test/com/sun/javadoc/testHtmlTableStyles/pkg2/TestUse.java ! test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java ! test/com/sun/javadoc/testProfiles/TestProfiles.java ! test/com/sun/javadoc/testStylesheet/TestStylesheet.java Changeset: 3344ea7404b1 Author: bpatel Date: 2013-10-04 13:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/3344ea7404b1 8024756: method grouping tabs are not selectable Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java ! test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java ! test/com/sun/javadoc/testJavascript/TestJavascript.java Changeset: 2fa6ced325cc Author: jjg Date: 2013-10-04 13:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/2fa6ced325cc 8022163: javac exits with 0 status and no messages on error to construct an ann-procesor Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java + test/tools/javac/processing/errors/TestBadProcessor.java Changeset: 515d54c1b063 Author: jjg Date: 2013-10-04 14:46 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/515d54c1b063 6525408: DiagnosticListener should receive MANDATORY_WARNING in standard compiler mode Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java ! src/share/classes/javax/tools/Diagnostic.java Changeset: 3e3c321710be Author: jjg Date: 2013-10-04 15:24 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/3e3c321710be 8025970: Spurious characters in JavaCompiler Reviewed-by: ksrini ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Changeset: bb87db832b31 Author: ksrini Date: 2013-10-04 16:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/bb87db832b31 8003537: javap use internal class name when printing bound of type variable Reviewed-by: jjg ! src/share/classes/com/sun/tools/javap/ClassWriter.java + test/tools/javap/BoundsTypeVariableTest.java Changeset: 15651a673358 Author: ksrini Date: 2013-10-04 16:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/15651a673358 8005542: jtreg test OverrideBridge.java contains @ignore Reviewed-by: jjg Contributed-by: steve.sides at oracle.com - test/tools/javac/generics/OverrideBridge.java Changeset: 4dd7ffbf01fb Author: darcy Date: 2013-10-07 16:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/4dd7ffbf01fb 8026017: Make history of AnnotatedConstruct methods in jx.l.m.e.Element clearer Reviewed-by: jjg ! src/share/classes/javax/lang/model/element/Element.java Changeset: ea000904db62 Author: alundblad Date: 2013-10-08 15:33 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/ea000904db62 8024415: Bug in javac Pretty: Wrong precedence in JCConditional trees Summary: Fixed precedence and associativity issues with pretty printing of JCConditional expressions. Reviewed-by: jfranck Contributed-by: Andreas Lundblad , Matthew Dempsky ! src/share/classes/com/sun/tools/javac/tree/Pretty.java + test/tools/javac/tree/T8024415.java Changeset: 0be3f1820e8b Author: jlahoda Date: 2013-10-09 13:06 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/0be3f1820e8b 8025141: java.lang.ClassFormatError: Illegal field modifiers in class (...) Summary: Should not generate non-public $assertionsDisabled field into interfaces Reviewed-by: jjg, vromero ! src/share/classes/com/sun/tools/javac/comp/Lower.java + test/tools/javac/defaultMethods/Assertions.java + test/tools/javac/defaultMethods/CannotChangeAssertionsStateAfterInitialized.java Changeset: 1b469fd31e35 Author: jlahoda Date: 2013-10-09 13:09 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1b469fd31e35 8025087: Annotation processing api returns default modifier for interface static method Summary: ClassReader must not set Flags.DEFAULT for interface static methods Reviewed-by: vromero, jjg ! make/build.xml ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties + test/tools/javac/defaultMethods/BadClassfile.java ! test/tools/javac/diags/examples.not-yet.txt + test/tools/javac/diags/examples/InvalidDefaultInterface/InvalidDefaultInterface.java + test/tools/javac/diags/examples/InvalidDefaultInterface/processors/CreateBadClassFile.java + test/tools/javac/diags/examples/InvalidStaticInterface/InvalidStaticInterface.java + test/tools/javac/diags/examples/InvalidStaticInterface/processors/CreateBadClassFile.java ! test/tools/javac/processing/model/element/TestExecutableElement.java Changeset: 1e7ad879f15e Author: alundblad Date: 2013-10-10 08:51 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1e7ad879f15e 8021237: clean up JavacAnnotatedConstruct Summary: Refactored the static helper methods in JavacAnnoConstructs into ordinary methods and put them in a common superclass (AnnoConstruct) of Symbol and Type. Reviewed-by: jjg, vromero, jfranck + src/share/classes/com/sun/tools/javac/code/AnnoConstruct.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/Type.java - src/share/classes/com/sun/tools/javac/model/JavacAnnoConstructs.java Changeset: 933ba3f81a87 Author: bpatel Date: 2013-10-10 10:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/933ba3f81a87 8025633: Fix javadoc to generate valid anchor names Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractExecutableMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeFieldWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/PropertyWriterImpl.java + src/share/classes/com/sun/tools/doclets/formats/html/SectionName.java ! src/share/classes/com/sun/tools/doclets/formats/html/SingleIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocletConstants.java ! test/com/sun/javadoc/AccessSkipNav/AccessSkipNav.java + test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java + test/com/sun/javadoc/testAnchorNames/pkg1/DeprMemClass.java + test/com/sun/javadoc/testAnchorNames/pkg1/RegClass.java ! test/com/sun/javadoc/testAnnotationOptional/TestAnnotationOptional.java ! test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java ! test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java ! test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java ! test/com/sun/javadoc/testHref/TestHref.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java ! test/com/sun/javadoc/testInterface/TestInterface.java ! test/com/sun/javadoc/testJavaFX/TestJavaFX.java ! test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java ! test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java ! test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java ! test/com/sun/javadoc/testNavigation/TestNavigation.java ! test/com/sun/javadoc/testNestedGenerics/TestNestedGenerics.java ! test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java ! test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java ! test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java ! test/com/sun/javadoc/testTaglets/TestTaglets.java ! test/com/sun/javadoc/testTypeAnnotations/TestTypeAnnotations.java ! test/com/sun/javadoc/testTypeParams/TestTypeParameters.java ! test/com/sun/javadoc/testWarnings/TestWarnings.java Changeset: 6dcf94e32a3a Author: emc Date: 2013-10-10 13:55 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/6dcf94e32a3a 8019461: Clean up javac diagnostics 7196553: Review error messages for repeating annotations Summary: Changes to the diagnostic messages to improve clarity and JLS coherence Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties - test/tools/javac/diags/examples/DuplicateAnnotation.java + test/tools/javac/diags/examples/InterfaceOrArrayExpected.java + test/tools/javac/diags/examples/RepeatableAnnotationsNotSupported.java Changeset: b1b4a6dcc282 Author: emc Date: 2013-10-10 20:12 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/b1b4a6dcc282 8008762: Type annotation on inner class in anonymous class show up as regular type annotations 8015257: type annotation with TYPE_USE and FIELD attributed differently if repeated. 8013409: test failures for type annotations Summary: Fixes to address some problems in type annotations Reviewed-by: jfranck, jjg ! src/share/classes/com/sun/tools/javac/code/Attribute.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java + test/tools/javac/annotations/typeAnnotations/classfile/TestAnonInnerClasses.java + test/tools/javac/annotations/typeAnnotations/classfile/testanoninner.template ! test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java ! test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.out ! test/tools/javac/annotations/typeAnnotations/newlocations/MultiCatch.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java Changeset: f068d235c4f7 Author: jjg Date: 2013-10-10 17:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/f068d235c4f7 8026294: 8025633 breaks langtools/test/com/sun/javadoc/testRepeatedAnnotations/TestRepeatedAnnotations.java Reviewed-by: darcy ! test/com/sun/javadoc/testRepeatedAnnotations/TestRepeatedAnnotations.java Changeset: a0e8fd2464d6 Author: cl Date: 2013-10-10 10:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/a0e8fd2464d6 Added tag jdk8-b111 for changeset af6244ba81b6 ! .hgtags Changeset: 8f293c710369 Author: lana Date: 2013-10-10 13:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/8f293c710369 Merge Changeset: bf33f4f81b40 Author: lana Date: 2013-10-10 20:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/bf33f4f81b40 Merge - test/tools/javac/diags/examples/DuplicateAnnotation.java Changeset: 1ce8405af5fe Author: rfield Date: 2013-10-10 23:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/1ce8405af5fe 8012557: Implement lambda methods on interfaces as private 8016320: Method reference in subinterface of type I.super::foo produces exception at runtime Summary: Now that the VM supports interface instance private methods, lambda methods and lambda bridges are always private. Access is now through invokespecial. Reviewed-by: vromero, jlahoda ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/share/classes/com/sun/tools/javac/jvm/Pool.java + test/tools/javac/lambda/8012557/A.java + test/tools/javac/lambda/8012557/B.java + test/tools/javac/lambda/8012557/C.java + test/tools/javac/lambda/8012557/PrivateLambdas.java + test/tools/javac/lambda/8012557/SAM.java + test/tools/javac/lambda/8016320/IllegalBridgeModifier.java Changeset: 872c4a898b38 Author: jlahoda Date: 2013-10-11 15:49 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/872c4a898b38 6278240: Exception from AnnotationValue.getValue() should list the found type not the required type Reviewed-by: darcy, jfranck, jjg ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java + test/tools/javac/processing/errors/EnsureAnnotationTypeMismatchException/Processor.java + test/tools/javac/processing/errors/EnsureAnnotationTypeMismatchException/Source.java + test/tools/javac/processing/errors/EnsureAnnotationTypeMismatchException/Source.out Changeset: 4dfcf3a6902f Author: lana Date: 2013-10-08 14:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/4dfcf3a6902f Merge - src/share/classes/jdk/Supported.java - test/tools/javac/generics/OverrideBridge.java Changeset: 2f43529df42f Author: lana Date: 2013-10-11 03:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/2f43529df42f Merge - src/share/classes/jdk/Supported.java - test/tools/javac/generics/OverrideBridge.java Changeset: f329c374da4b Author: lana Date: 2013-10-11 23:31 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/f329c374da4b Merge Changeset: b024fe427d24 Author: jjg Date: 2013-10-14 12:38 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/b024fe427d24 8026368: doclint does not report empty tags when tag closed implicitly Reviewed-by: darcy ! src/share/classes/com/sun/tools/doclint/Checker.java ! test/tools/doclint/HtmlAttrsTest.java ! test/tools/doclint/HtmlAttrsTest.out ! test/tools/doclint/tidy/BadEnd.out ! test/tools/doclint/tidy/TrimmingEmptyTag.java ! test/tools/doclint/tidy/TrimmingEmptyTag.out Changeset: 87b5bfef7edb Author: jlahoda Date: 2013-10-14 22:11 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/87b5bfef7edb 8014016: javac is too late detecting invalid annotation usage Summary: Adding new queue to Annotate for validation tasks, performing annotation validation during enter Reviewed-by: jjg, emc, jfranck ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.out + test/tools/javac/processing/errors/StopOnInapplicableAnnotations/GenerateFunctionalInterface.java + test/tools/javac/processing/errors/StopOnInapplicableAnnotations/GenerateSuperInterfaceProcessor.java + test/tools/javac/processing/errors/StopOnInapplicableAnnotations/Processor.java + test/tools/javac/processing/errors/StopOnInapplicableAnnotations/Source.java Changeset: b9e3b55a908c Author: jjg Date: 2013-10-14 16:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/b9e3b55a908c 8026371: "tidy" issues in langtools/src/**/*.html files Reviewed-by: darcy + src/share/classes/com/sun/javadoc/package-info.java - src/share/classes/com/sun/javadoc/package.html + src/share/classes/com/sun/tools/classfile/package-info.java - src/share/classes/com/sun/tools/classfile/package.html + src/share/classes/com/sun/tools/doclets/formats/html/markup/package-info.java - src/share/classes/com/sun/tools/doclets/formats/html/markup/package.html + src/share/classes/com/sun/tools/doclets/formats/html/package-info.java - src/share/classes/com/sun/tools/doclets/formats/html/package.html + src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package-info.java - src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package.html + src/share/classes/com/sun/tools/doclets/internal/toolkit/package-info.java - src/share/classes/com/sun/tools/doclets/internal/toolkit/package.html + src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package-info.java - src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package.html + src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package-info.java - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package.html + src/share/classes/com/sun/tools/doclets/internal/toolkit/util/package-info.java - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/package.html + src/share/classes/com/sun/tools/doclets/package-info.java - src/share/classes/com/sun/tools/doclets/package.html + src/share/classes/com/sun/tools/javap/package-info.java - src/share/classes/com/sun/tools/javap/package.html ! src/share/classes/javax/lang/model/overview.html ! src/share/classes/javax/tools/overview.html Changeset: 7d266a2b31b2 Author: jjg Date: 2013-10-14 22:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/7d266a2b31b2 8025693: recent javadoc changes cause com/sun/javadoc/testLinkOption/TestLinkOption.java to fail Reviewed-by: darcy ! src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java + test/tools/javadoc/8025693/Test.java Changeset: 09a414673570 Author: jjg Date: 2013-10-14 23:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/09a414673570 8025998: Missing LV table in lambda bodies Reviewed-by: vromero ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java + test/tools/javac/lambda/LocalVariableTable.java Changeset: 79649bf21a92 Author: jlahoda Date: 2013-10-15 16:23 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/79649bf21a92 8026180: com.sun.source.tree.NewArrayTree refers to com.sun.tools.javac.util.List Summary: Correcting import in NewArrayTree, adding test protecting againts improper types in API signatures Reviewed-by: jjg ! src/share/classes/com/sun/source/tree/NewArrayTree.java + test/tools/javac/tree/NoPrivateTypesExported.java Changeset: bf6b11347b1a Author: bpatel Date: 2013-10-15 11:20 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/bf6b11347b1a 8026370: javadoc creates empty Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/ContentBuilder.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java + test/com/sun/javadoc/testTagOutput/TestTagOutput.java + test/com/sun/javadoc/testTagOutput/pkg1/DeprecatedTag.java Changeset: 70a301b35e71 Author: vromero Date: 2013-10-15 19:36 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/70a301b35e71 8025816: javac crash with method reference with a type variable as the site Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Resolve.java + test/tools/javac/lambda/T8025816/CrashMethodReferenceWithSiteTypeVarTest.java Changeset: d8d6b58f1ebf Author: vromero Date: 2013-10-15 21:02 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/d8d6b58f1ebf 8024947: javac should issue the potentially ambiguous overload warning only where the problem appears Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/lambda/T8024947/PotentiallyAmbiguousWarningTest.java + test/tools/javac/lambda/T8024947/PotentiallyAmbiguousWarningTest.out Changeset: 84df20dc604a Author: bpatel Date: 2013-07-24 15:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/84df20dc604a 8016675: Make Javadoc pages more robust Reviewed-by: jlaskey, ksrini ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java + test/com/sun/javadoc/testWindowTitle/TestWindowTitle.java + test/com/sun/javadoc/testWindowTitle/p1/C1.java + test/com/sun/javadoc/testWindowTitle/p2/C2.java Changeset: 8b3e2cc5f1de Author: chegar Date: 2013-07-25 19:06 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/8b3e2cc5f1de Merge - test/tools/javac/generics/6723444/T6723444.out - test/tools/javac/generics/7015430/T7015430.out Changeset: 0d75d3b96477 Author: chegar Date: 2013-08-02 11:11 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/0d75d3b96477 Merge Changeset: 2d1a54d213c2 Author: chegar Date: 2013-08-09 14:44 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/2d1a54d213c2 Merge Changeset: 84b6d75ff2c9 Author: chegar Date: 2013-08-15 21:34 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/84b6d75ff2c9 Merge Changeset: a540e2a926cf Author: chegar Date: 2013-08-23 22:12 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/a540e2a926cf Merge Changeset: a8f0c3583a86 Author: chegar Date: 2013-08-30 10:17 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/a8f0c3583a86 Merge - test/tools/javac/defaultMethods/defaultMethodExecution/DefaultMethodRegressionTests.java - test/tools/javac/diags/examples/IncompatibleThrownTypesInLambda.java Changeset: 6250a7f0aba6 Author: chegar Date: 2013-09-06 10:05 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/6250a7f0aba6 Merge - test/com/sun/javadoc/testNavagation/TestNavagation.java - test/com/sun/javadoc/testNavagation/pkg/A.java - test/com/sun/javadoc/testNavagation/pkg/C.java - test/com/sun/javadoc/testNavagation/pkg/E.java - test/com/sun/javadoc/testNavagation/pkg/I.java - test/tools/javac/8015701/AnonymousParameters.java Changeset: a6901af8a2e4 Author: chegar Date: 2013-09-14 20:46 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/a6901af8a2e4 Merge Changeset: 2c13a5da6854 Author: chegar Date: 2013-10-03 19:28 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/2c13a5da6854 Merge ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java - src/share/classes/com/sun/tools/javac/code/Annotations.java - test/tools/javac/diags/examples/CyclicInference.java - test/tools/javac/diags/examples/MrefStat.java.rej - test/tools/javac/diags/examples/MrefStat1.java.rej - test/tools/javac/lambda/TargetType10.out - test/tools/javac/lambda/typeInference/InferenceTest5.java - test/tools/javac/lambda/typeInference/InferenceTest_neg5.java - test/tools/javac/lambda/typeInference/InferenceTest_neg5.out Changeset: 86e57f576e65 Author: chegar Date: 2013-10-11 19:05 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/86e57f576e65 Merge ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java Changeset: 46feacb99698 Author: chegar Date: 2013-10-15 14:17 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/46feacb99698 Merge - src/share/classes/com/sun/javadoc/package.html - src/share/classes/com/sun/tools/classfile/package.html - src/share/classes/com/sun/tools/doclets/formats/html/markup/package.html - src/share/classes/com/sun/tools/doclets/formats/html/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/package.html - src/share/classes/com/sun/tools/doclets/package.html - src/share/classes/com/sun/tools/javap/package.html Changeset: 90c9ae4bc756 Author: chegar Date: 2013-10-15 20:47 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/90c9ae4bc756 Merge Changeset: dd073728085d Author: chegar Date: 2013-10-15 21:12 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/dd073728085d Merge Changeset: 19e8eebfbe52 Author: jlahoda Date: 2013-10-15 22:15 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/19e8eebfbe52 8026510: The name of com.sun.tools.javac.comp.Annotate.Annotator is confusing Summary: A mostly automated rename Annotate.Annotator->Annotate.Worker and enterAnnotation->run. Reviewed-by: emc, jjg ! src/share/classes/com/sun/tools/javac/code/SymbolMetadata.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java Changeset: b0c086cd4520 Author: jjg Date: 2013-10-15 15:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/b0c086cd4520 8026564: import changes from type-annotations forest Reviewed-by: jjg Contributed-by: wdietl at gmail.com, steve.sides at oracle.com ! make/build.properties ! make/build.xml ! src/share/classes/com/sun/tools/javac/code/Attribute.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/SymbolMetadata.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/javax/lang/model/AnnotatedConstruct.java ! test/com/sun/javadoc/testTypeAnnotations/TestTypeAnnotations.java ! test/com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java ! test/tools/javac/T7042623.java ! test/tools/javac/annotations/typeAnnotations/classfile/ClassfileTestHelper.java + test/tools/javac/annotations/typeAnnotations/classfile/Scopes.java ! test/tools/javac/annotations/typeAnnotations/failures/AnnotatedImport.java ! test/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage1.java ! test/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage1.out ! test/tools/javac/annotations/typeAnnotations/failures/AnnotatedPackage2.java ! test/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion.java ! test/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion.out ! test/tools/javac/annotations/typeAnnotations/failures/AnnotationVersion7.out ! test/tools/javac/annotations/typeAnnotations/failures/BadCast.java ! test/tools/javac/annotations/typeAnnotations/failures/BadCast.out + test/tools/javac/annotations/typeAnnotations/failures/CantAnnotatePackages.java + test/tools/javac/annotations/typeAnnotations/failures/CantAnnotatePackages.out + test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateScoping.java + test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateScoping.out ! test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java - test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.out + test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass2.java + test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass2.out + test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass3.java + test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass3.out ! test/tools/javac/annotations/typeAnnotations/failures/IncompleteArray.java ! test/tools/javac/annotations/typeAnnotations/failures/IncompleteArray.out - test/tools/javac/annotations/typeAnnotations/failures/IncompleteVararg.java - test/tools/javac/annotations/typeAnnotations/failures/IncompleteVararg.out ! test/tools/javac/annotations/typeAnnotations/failures/IndexArray.java ! test/tools/javac/annotations/typeAnnotations/failures/IndexArray.out ! test/tools/javac/annotations/typeAnnotations/failures/LintCast.out ! test/tools/javac/annotations/typeAnnotations/failures/OldArray.java + test/tools/javac/annotations/typeAnnotations/failures/OldArray.out ! test/tools/javac/annotations/typeAnnotations/failures/Scopes.java ! test/tools/javac/annotations/typeAnnotations/failures/Scopes.out ! test/tools/javac/annotations/typeAnnotations/failures/StaticFields.java ! test/tools/javac/annotations/typeAnnotations/failures/StaticFields.out - test/tools/javac/annotations/typeAnnotations/failures/StaticMethods.java - test/tools/javac/annotations/typeAnnotations/failures/StaticMethods.out ! test/tools/javac/annotations/typeAnnotations/failures/TypeVariableCycleTest.java + test/tools/javac/annotations/typeAnnotations/failures/TypeVariableMissingTA.java + test/tools/javac/annotations/typeAnnotations/failures/TypeVariableMissingTA.out - test/tools/javac/diags/examples/CantAnnotateNestedType.java + test/tools/javac/diags/examples/CantAnnotateScoping.java + test/tools/javac/diags/examples/CantAnnotateScoping1.java - test/tools/javac/diags/examples/CantAnnotateStaticClass.java ! test/tools/javac/lib/DPrinter.java ! test/tools/javac/processing/model/type/BasicAnnoTests.java Changeset: d7e155f874a7 Author: jjg Date: 2013-10-16 10:47 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/d7e155f874a7 8026704: Build failure with --enable-debug Reviewed-by: ksrini ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java - test/tools/javac/lambda/LocalVariableTable.java Changeset: 7f6481e5fe3a Author: emc Date: 2013-10-16 16:33 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/7f6481e5fe3a 8026286: Improper locking of annotation queues causes assertion failures. 8026063: Calls to annotate.flush() cause incorrect type annotations to be generated. Summary: Fix locking in ClassReader.java Reviewed-by: jfranck ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java + test/tools/javac/annotations/typeAnnotations/TestAnonInnerInstance1.java ! test/tools/javac/annotations/typeAnnotations/classfile/T8008762.java Changeset: a48d3b981083 Author: mnunez Date: 2013-10-17 13:27 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/a48d3b981083 8015372: Update tests for Method Parameter Reflection API to check whether a parameter is final Reviewed-by: jjg, jfranck ! test/tools/javac/MethodParameters/AnnotationTest.java + test/tools/javac/MethodParameters/AnnotationTest.out ! test/tools/javac/MethodParameters/AnonymousClass.java + test/tools/javac/MethodParameters/AnonymousClass.out ! test/tools/javac/MethodParameters/ClassFileVisitor.java ! test/tools/javac/MethodParameters/Constructors.java + test/tools/javac/MethodParameters/Constructors.out ! test/tools/javac/MethodParameters/EnumTest.java + test/tools/javac/MethodParameters/EnumTest.out ! test/tools/javac/MethodParameters/InstanceMethods.java + test/tools/javac/MethodParameters/InstanceMethods.out ! test/tools/javac/MethodParameters/LambdaTest.java + test/tools/javac/MethodParameters/LambdaTest.out ! test/tools/javac/MethodParameters/LocalClassTest.java + test/tools/javac/MethodParameters/LocalClassTest.out ! test/tools/javac/MethodParameters/MemberClassTest.java + test/tools/javac/MethodParameters/MemberClassTest.out ! test/tools/javac/MethodParameters/ReflectionVisitor.java ! test/tools/javac/MethodParameters/StaticMethods.java + test/tools/javac/MethodParameters/StaticMethods.out ! test/tools/javac/MethodParameters/Tester.java ! test/tools/javac/MethodParameters/UncommonParamNames.java + test/tools/javac/MethodParameters/UncommonParamNames.out Changeset: 4d8af6fda907 Author: mnunez Date: 2013-10-17 13:50 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/4d8af6fda907 8008192: Better ordering checks needed in repeatingAnnotations/combo/ReflectionTest Reviewed-by: jjg, jfranck ! test/tools/javac/annotations/repeatingAnnotations/combo/Helper.java ! test/tools/javac/annotations/repeatingAnnotations/combo/ReflectionTest.java Changeset: defadd528513 Author: mchung Date: 2013-10-17 13:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/defadd528513 8015912: jdeps support to output in dot file format 8026255: Switch jdeps to follow traditional Java option style Reviewed-by: alanb ! src/share/classes/com/sun/tools/jdeps/Analyzer.java ! src/share/classes/com/sun/tools/jdeps/Archive.java ! src/share/classes/com/sun/tools/jdeps/ClassFileReader.java ! src/share/classes/com/sun/tools/jdeps/JdepsTask.java ! src/share/classes/com/sun/tools/jdeps/PlatformClassPath.java + src/share/classes/com/sun/tools/jdeps/Profile.java - src/share/classes/com/sun/tools/jdeps/Profiles.java ! src/share/classes/com/sun/tools/jdeps/resources/jdeps.properties + test/tools/jdeps/APIDeps.java ! test/tools/jdeps/Basic.java ! test/tools/jdeps/Test.java + test/tools/jdeps/b/B.java + test/tools/jdeps/c/C.java + test/tools/jdeps/c/I.java + test/tools/jdeps/d/D.java + test/tools/jdeps/e/E.java + test/tools/jdeps/f/F.java + test/tools/jdeps/g/G.java + test/tools/jdeps/m/Bar.java + test/tools/jdeps/m/Foo.java + test/tools/jdeps/m/Gee.java Changeset: 343aeb2033f0 Author: ihse Date: 2013-10-10 14:58 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/343aeb2033f0 8001931: The new build system whitespace cleanup Reviewed-by: tbell, simonis, erikj ! makefiles/BuildLangtools.gmk ! makefiles/Makefile Changeset: 954dd199d6ff Author: katleman Date: 2013-10-16 12:05 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/954dd199d6ff Merge Changeset: 8f54b4231c28 Author: cl Date: 2013-10-17 09:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/8f54b4231c28 Added tag jdk8-b112 for changeset 954dd199d6ff ! .hgtags Changeset: bca97b47f0a2 Author: lana Date: 2013-10-17 16:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/bca97b47f0a2 Merge Changeset: 7af634b1fc5b Author: darcy Date: 2013-10-17 19:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/7af634b1fc5b 8026838: Fix new doclint issues in javax.annotation.processing Reviewed-by: jjg ! src/share/classes/javax/annotation/processing/Processor.java Changeset: 7de97abc4a5c Author: jjg Date: 2013-10-18 15:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/7de97abc4a5c 8026749: Missing LV table in lambda bodies Reviewed-by: vromero, jlahoda ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java + test/tools/javac/lambda/LocalVariableTable.java Changeset: 130b8c0e570e Author: bpatel Date: 2013-10-18 16:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/130b8c0e570e 8026567: Use meaningful style names for strong and italic styles. Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractExecutableMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeFieldWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ProfileWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/PropertyWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css ! test/com/sun/javadoc/AuthorDD/AuthorDD.java ! test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java ! test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java ! test/com/sun/javadoc/testClassTree/TestClassTree.java ! test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java ! test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java ! test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java ! test/com/sun/javadoc/testHref/TestHref.java ! test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java ! test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java ! test/com/sun/javadoc/testIndex/TestIndex.java ! test/com/sun/javadoc/testInterface/TestInterface.java ! test/com/sun/javadoc/testJavaFX/TestJavaFX.java ! test/com/sun/javadoc/testLegacyTaglet/Check.java ! test/com/sun/javadoc/testLinkOption/TestLinkOption.java ! test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java ! test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java ! test/com/sun/javadoc/testNavigation/TestNavigation.java ! test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java ! test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java ! test/com/sun/javadoc/testPackageDeprecation/TestPackageDeprecation.java ! test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java ! test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java ! test/com/sun/javadoc/testProfiles/TestProfiles.java ! test/com/sun/javadoc/testProfiles/TestProfilesConfiguration.java ! test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java ! test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java ! test/com/sun/javadoc/testSimpleTagInherit/TestSimpleTagInherit.java ! test/com/sun/javadoc/testSinceTag/TestSinceTag.java ! test/com/sun/javadoc/testTagOutput/TestTagOutput.java ! test/com/sun/javadoc/testTaglets/TestTaglets.java ! test/com/sun/javadoc/testTaglets/taglets/Foo.java ! test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java ! test/com/sun/javadoc/testTypeAnnotations/TestTypeAnnotations.java ! test/com/sun/javadoc/testValueTag/TestValueTag.java Changeset: c4292590fc70 Author: vromero Date: 2013-10-19 17:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/c4292590fc70 8024809: javac, some lambda programs are rejected by flow analysis Reviewed-by: jjg, dlsmith ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! test/tools/javac/lambda/8016081/T8016081.java ! test/tools/javac/lambda/LambdaExpr13.java + test/tools/javac/lambda/T8024809/SelfInitializerInLambdaTesta.java + test/tools/javac/lambda/T8024809/SelfInitializerInLambdaTesta.out + test/tools/javac/lambda/T8024809/SelfInitializerInLambdaTestb.java + test/tools/javac/lambda/T8024809/SelfInitializerInLambdaTestb.out ! test/tools/javac/lambda/TestSelfRef.java Changeset: e5d3cd43c85e Author: jjg Date: 2013-10-20 12:01 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/e5d3cd43c85e 8025109: Better encapsulation for AnnotatedType Reviewed-by: jjg Contributed-by: wdietl at gmail.com ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java Changeset: ae4f5cb78ebd Author: jjg Date: 2013-10-20 12:46 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/ae4f5cb78ebd 8026791: wrong type_path encoded for method_return on an inner class constructor Reviewed-by: jjg Contributed-by: wdietl at gmail.com ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Constructors.java Changeset: 399c738e5103 Author: ksrini Date: 2013-10-20 12:54 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/399c738e5103 8026931: MethodParameters tests failing on Windows Reviewed-by: jjg, vromero ! test/tools/javac/MethodParameters/Tester.java Changeset: 9f876bd43f55 Author: vromero Date: 2013-10-21 15:55 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/9f876bd43f55 8026956: test tools/javac/lambda/TargetType58.java is failing after a libs change Reviewed-by: jfranck ! test/tools/javac/lambda/TargetType58.java Changeset: b82982ac3ca2 Author: darcy Date: 2013-10-21 15:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/b82982ac3ca2 8026984: Clarity intended use of jdk.Exported Reviewed-by: psandoz, mr, alanb ! src/share/classes/jdk/Exported.java Changeset: ac839d6f4953 Author: jfranck Date: 2013-10-22 03:36 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/ac839d6f4953 8026855: AnnoConstruct.getAnnotationsByType includes inherited indirectly present annotations even when containee type is not inheritable Summary: In AnnoConstruct.getAnnotationByType() check that the annotation sought after is inherited before looking on supertypes. Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/AnnoConstruct.java + test/tools/javac/processing/model/element/TestNonInherited.java Changeset: 87c950ea88be Author: ksrini Date: 2013-10-21 20:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/87c950ea88be 8026758: Inefficient code in LambdaToMethod Reviewed-by: jjg, jlahoda, rfield ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java Changeset: f003f09144ff Author: jfranck Date: 2013-10-22 10:08 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/f003f09144ff 8026857: AnnoConstruct.getAnnotationsByType does not search supertype for inherited annotations if @SomeContainer({}) is present Summary: An empty container should not stop javac from looking at supertypes for inherited repeating annotations Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/AnnoConstruct.java + test/tools/javac/processing/model/element/TestEmptyContainer.java Changeset: 963c57175e40 Author: vromero Date: 2013-10-22 13:54 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/963c57175e40 8025290: javac implicit versus explicit lambda compilation error Reviewed-by: jjg, dlsmith ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/util/JavacMessages.java + test/tools/javac/lambda/T8025290/ExplicitVSImplicitLambdaTest.java Changeset: 6cd16d8ed2b9 Author: rfield Date: 2013-10-22 16:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/6cd16d8ed2b9 8023668: Desugar serializable lambda bodies using more robust naming scheme Summary: lambda / bridged method-reference naming overhaul Reviewed-by: ksrini, briangoetz ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! test/tools/javac/MethodParameters/LambdaTest.out ! test/tools/javac/T8019486/WrongLVTForLambdaTest.java + test/tools/javac/lambda/lambdaNaming/TestSerializedLambdaNameStability.java + test/tools/javac/lambda/lambdaNaming/after/TESTNameOfCapturedArgs.java + test/tools/javac/lambda/lambdaNaming/after/TESTOrderOfCapturedArgs.java + test/tools/javac/lambda/lambdaNaming/after/TESTTargetName.java + test/tools/javac/lambda/lambdaNaming/after/TESTTargetType.java + test/tools/javac/lambda/lambdaNaming/after/TESTTypesOfCapturedArgs.java + test/tools/javac/lambda/lambdaNaming/after/TESTVariableAssignmentTarget.java + test/tools/javac/lambda/lambdaNaming/before/TESTNameOfCapturedArgs.java + test/tools/javac/lambda/lambdaNaming/before/TESTOrderOfCapturedArgs.java + test/tools/javac/lambda/lambdaNaming/before/TESTTargetName.java + test/tools/javac/lambda/lambdaNaming/before/TESTTargetType.java + test/tools/javac/lambda/lambdaNaming/before/TESTTypesOfCapturedArgs.java + test/tools/javac/lambda/lambdaNaming/before/TESTVariableAssignmentTarget.java Changeset: 351d6808c1a5 Author: jjg Date: 2013-10-22 17:42 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/351d6808c1a5 8027119: Cleanup javadoc comments for taglet API Reviewed-by: mduigou ! src/share/classes/com/sun/javadoc/Tag.java Changeset: 41d3ffca22ff Author: jjg Date: 2013-10-22 17:44 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/41d3ffca22ff Merge Changeset: b05db8c815e8 Author: jlahoda Date: 2013-10-23 07:50 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/b05db8c815e8 8026508: Invokedynamic instructions don't get line number table entries Summary: Setting or correcting positions for many trees produced by LambdaToMethod. Reviewed-by: vromero, rfield ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/tools/javac/T8019486/WrongLNTForLambdaTest.java - test/tools/javac/T8019486/WrongLVTForLambdaTest.java Changeset: 32ea6ccb7607 Author: rfield Date: 2013-10-23 10:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/32ea6ccb7607 8022720: Method refeerences - private method should be accessible (nested classes) Reviewed-by: jjg, ksrini ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/tools/javac/lambda/privateMethodReferences/MethodInvoker.java + test/tools/javac/lambda/privateMethodReferences/MethodSupplier.java + test/tools/javac/lambda/privateMethodReferences/ThirdClass.java Changeset: 8746caa5cf80 Author: bpatel Date: 2013-10-23 13:54 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/8746caa5cf80 8026770: javadoc creates invalid HTML in profile summary pages Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageWriterImpl.java ! test/com/sun/javadoc/testProfiles/TestProfiles.java Changeset: abc3eaccba73 Author: jlahoda Date: 2013-10-23 23:02 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/abc3eaccba73 8027191: Fix for JDK-8026861 refers to an incorrect bug number Summary: Reverting changeset b05db8c815e8, so that it can be applied again with a correct bug number Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java - test/tools/javac/T8019486/WrongLNTForLambdaTest.java + test/tools/javac/T8019486/WrongLVTForLambdaTest.java Changeset: 864dafc5ab7a Author: jlahoda Date: 2013-10-23 07:50 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/864dafc5ab7a 8026861: Wrong LineNumberTable for variable declarations in lambdas Summary: Setting or correcting positions for many trees produced by LambdaToMethod. Reviewed-by: vromero, rfield ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/tools/javac/T8019486/WrongLNTForLambdaTest.java - test/tools/javac/T8019486/WrongLVTForLambdaTest.java Changeset: 31fe30e2deac Author: ksrini Date: 2013-10-23 15:45 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/31fe30e2deac 8026936: Initialize LamdbaToMethod lazily and as required Reviewed-by: jjg, rfield Contributed-by: jan.lahoda at oracle.com ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Changeset: d2fa3f7e964e Author: emc Date: 2013-10-23 23:20 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/d2fa3f7e964e 8006732: support correct bytecode storage of type annotations in multicatch Summary: Fix issue with annotations being added before attribution, which causes multicatch not to work right and several tests to fail. Reviewed-by: jfranck, jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass2.java ! test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass2.out ! test/tools/javac/annotations/typeAnnotations/newlocations/MultiCatch.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java Changeset: 119747cd9f25 Author: emc Date: 2013-10-24 01:27 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/119747cd9f25 8023682: Incorrect attributes emitted for anonymous class declaration Summary: Cause javac to emit type annotations on new instruction as well as anonymous class supertype for annotated anonymous classes. Reviewed-by: jjg, jfranck ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/annotations/typeAnnotations/failures/TypeOnAnonClass.java + test/tools/javac/annotations/typeAnnotations/failures/TypeOnAnonClass.out ! test/tools/javac/annotations/typeAnnotations/failures/common/arrays/DeclarationAnnotation.out ! test/tools/javac/annotations/typeAnnotations/newlocations/AnonymousClass.java Changeset: 667843bd2193 Author: bpatel Date: 2013-10-24 11:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/667843bd2193 8006248: Since addition of -Xdoclint, javadoc ignores unknown tags Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java ! src/share/classes/com/sun/tools/doclint/Checker.java ! src/share/classes/com/sun/tools/doclint/DocLint.java ! src/share/classes/com/sun/tools/doclint/Env.java ! src/share/classes/com/sun/tools/javadoc/DocEnv.java ! src/share/classes/com/sun/tools/javadoc/RootDocImpl.java + test/com/sun/javadoc/testCustomTag/TagTestClass.java + test/com/sun/javadoc/testCustomTag/TestCustomTag.java + test/com/sun/javadoc/testCustomTag/taglets/CustomTag.java + test/tools/doclint/CustomTagTest.java + test/tools/doclint/CustomTagTest.out + test/tools/doclint/CustomTagTestWithOption.out ! test/tools/doclint/DocLintTester.java Changeset: 860f1d21763a Author: rfield Date: 2013-10-24 16:52 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/860f1d21763a 8027220: DefaultMethodsTest: Change test to match spec Reviewed-by: ksrini ! test/tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java ! test/tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java Changeset: 0fde5fa9febf Author: briangoetz Date: 2013-10-28 18:30 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/0fde5fa9febf Merge ! .hgtags ! make/build.properties ! make/build.xml ! makefiles/Makefile - src/share/classes/com/sun/javadoc/package.html ! src/share/classes/com/sun/source/tree/LambdaExpressionTree.java ! src/share/classes/com/sun/source/tree/MemberReferenceTree.java ! src/share/classes/com/sun/source/tree/Tree.java ! src/share/classes/com/sun/source/tree/TreeVisitor.java ! src/share/classes/com/sun/source/util/DocTrees.java ! src/share/classes/com/sun/source/util/JavacTask.java ! src/share/classes/com/sun/source/util/Plugin.java ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/share/classes/com/sun/source/util/TreePath.java ! src/share/classes/com/sun/source/util/TreeScanner.java - src/share/classes/com/sun/tools/classfile/package.html ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java - src/share/classes/com/sun/tools/doclets/formats/html/markup/package.html - src/share/classes/com/sun/tools/doclets/formats/html/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/package.html ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css - src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package.html - src/share/classes/com/sun/tools/doclets/internal/toolkit/util/package.html - src/share/classes/com/sun/tools/doclets/package.html ! src/share/classes/com/sun/tools/javac/api/JavacTool.java ! src/share/classes/com/sun/tools/javac/code/Attribute.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Printer.java ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/code/SymbolMetadata.java ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java ! src/share/classes/com/sun/tools/javac/comp/Flow.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/comp/TransTypes.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/jvm/Pool.java ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java - src/share/classes/com/sun/tools/javac/model/JavacAnnoConstructs.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java ! src/share/classes/com/sun/tools/javac/tree/JCTree.java ! src/share/classes/com/sun/tools/javac/tree/Pretty.java ! src/share/classes/com/sun/tools/javadoc/ClassDocImpl.java ! src/share/classes/com/sun/tools/javadoc/DocEnv.java ! src/share/classes/com/sun/tools/javadoc/RootDocImpl.java - src/share/classes/com/sun/tools/javap/package.html - src/share/classes/com/sun/tools/jdeps/Profiles.java - src/share/classes/jdk/Supported.java ! test/Makefile ! test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java ! test/com/sun/javadoc/testNavigation/TestNavigation.java ! test/com/sun/javadoc/testProfiles/TestProfiles.java - test/tools/javac/T8019486/WrongLVTForLambdaTest.java - test/tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.out - test/tools/javac/annotations/typeAnnotations/failures/IncompleteVararg.java - test/tools/javac/annotations/typeAnnotations/failures/IncompleteVararg.out - test/tools/javac/annotations/typeAnnotations/failures/StaticMethods.java - test/tools/javac/annotations/typeAnnotations/failures/StaticMethods.out ! test/tools/javac/diags/examples.not-yet.txt - test/tools/javac/diags/examples/CantAnnotateNestedType.java - test/tools/javac/diags/examples/CantAnnotateStaticClass.java - test/tools/javac/diags/examples/DuplicateAnnotation.java + test/tools/javac/diags/examples/RepeatableAnnotationsNotSupported.java - test/tools/javac/generics/OverrideBridge.java ! test/tools/javac/lambda/8016081/T8016081.java ! test/tools/javac/lambda/LambdaExpr13.java ! test/tools/javac/lambda/TargetType58.java ! test/tools/javac/lambda/TestSelfRef.java ! test/tools/javac/lambdaShapes/org/openjdk/tests/separate/TestHarness.java ! test/tools/javac/lambdaShapes/org/openjdk/tests/vm/DefaultMethodsTest.java From brian.goetz at oracle.com Mon Oct 28 15:32:49 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Mon, 28 Oct 2013 22:32:49 +0000 Subject: hg: lambda/lambda/jdk: 374 new changesets Message-ID: <20131029000447.6ED84627C2@hg.openjdk.java.net> Changeset: 78b4dc33e6e6 Author: twisti Date: 2013-09-26 18:20 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/78b4dc33e6e6 8019192: StringIndexOutOfBoundsException: in Class.getSimpleName() Reviewed-by: jrose ! src/share/classes/java/lang/invoke/MemberName.java Changeset: eb2c81533876 Author: weijun Date: 2013-09-27 15:25 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/eb2c81533876 8024861: Incomplete token triggers GSS-API NullPointerException Reviewed-by: mullan ! src/share/classes/sun/security/jgss/spnego/SpNegoContext.java + test/sun/security/jgss/spnego/MechTokenMissing.java Changeset: 95f609fcb639 Author: ehelin Date: 2013-09-26 16:23 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/95f609fcb639 8025502: Exclude tests due to JDK-8025427 Reviewed-by: ksrini ! test/ProblemList.txt Changeset: 914f8d4570df Author: mduigou Date: 2013-09-27 10:21 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/914f8d4570df 8025595: Remove alt-rt.jar, used by +AggressiveOps (jdk repo portion of JDK-8024826) Reviewed-by: alanb, chegar, dholmes, ksrini ! makefiles/CompileJavaClasses.gmk ! makefiles/CreateJars.gmk ! makefiles/Profiles.gmk ! makefiles/profile-includes.txt ! test/java/util/TreeMap/Clone.java Changeset: fbe6f5dbb24f Author: mduigou Date: 2013-09-27 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fbe6f5dbb24f 8023339: Refined Collection.removeIf UOE conditions Reviewed-by: mduigou Contributed-by: paul.sandoz at oracle.com ! src/share/classes/java/util/Collection.java ! test/java/util/Collection/MOAT.java Changeset: 91222be67b27 Author: mduigou Date: 2013-09-27 13:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/91222be67b27 8023340: Clarify that unmodifiable List.replaceAll() may not throw UOE if there are no items to be replaced. Reviewed-by: psandoz, jjg ! src/share/classes/java/util/List.java Changeset: 754db1268be1 Author: dxu Date: 2013-09-27 17:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/754db1268be1 8025128: File.createTempFile fails if prefix is absolute path Summary: Use only the file name from the supplied prefix for backward compatibility Reviewed-by: alanb, chegar ! src/share/classes/java/io/File.java ! test/java/io/File/createTempFile/SpecialTempFile.java Changeset: d921ce805abe Author: mduigou Date: 2013-09-27 17:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d921ce805abe 8025610: Add explicit @throws NPE documentation to Optional constructor and Optional.of Reviewed-by: briangoetz, chegar, alanb ! src/share/classes/java/util/Optional.java Changeset: 0b535e920dd5 Author: lana Date: 2013-09-27 18:38 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0b535e920dd5 Merge Changeset: 15955d335cd0 Author: jfranck Date: 2013-09-30 11:18 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/15955d335cd0 8007072: Update Core Reflection for Type Annotations to match latest spec 8022324: j.l.Class.getAnnotatedInterfaces() for array type returns wrong value 8024915: j.l.r.Executable.getAnnotatedReceiverType() should return null for static methods Summary: Update javadoc and implementation of reflection for type annotations to match latest spec Reviewed-by: darcy ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/reflect/AnnotatedArrayType.java ! src/share/classes/java/lang/reflect/AnnotatedParameterizedType.java ! src/share/classes/java/lang/reflect/AnnotatedType.java ! src/share/classes/java/lang/reflect/AnnotatedTypeVariable.java ! src/share/classes/java/lang/reflect/AnnotatedWildcardType.java ! src/share/classes/java/lang/reflect/Executable.java ! src/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java ! src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java + test/java/lang/annotation/typeAnnotations/GetAnnotatedInterfaces.java + test/java/lang/annotation/typeAnnotations/GetAnnotatedReceiverType.java ! test/java/lang/annotation/typeAnnotations/GetAnnotatedSuperclass.java Changeset: 89174cddaec8 Author: jfranck Date: 2013-09-30 12:19 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/89174cddaec8 8009719: core reflection should get type annotation data from the VM lazily Summary: Remove typeAnnotations field from Method, Constructor, and Field, update Executable and Field to fetch data on demand. Reviewed-by: darcy, erikj ! make/java/java/FILES_c.gmk ! make/java/java/mapfile-vers ! makefiles/mapfiles/libjava/mapfile-vers ! src/share/classes/java/lang/reflect/Constructor.java ! src/share/classes/java/lang/reflect/Executable.java ! src/share/classes/java/lang/reflect/Field.java ! src/share/classes/java/lang/reflect/Method.java ! src/share/javavm/export/jvm.h ! src/share/native/java/lang/reflect/Executable.c + src/share/native/java/lang/reflect/Field.c Changeset: cceaad499685 Author: sla Date: 2013-09-30 12:58 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cceaad499685 8023492: jfr.jar gets loaded even though it's not used Reviewed-by: erikj, mgronlun ! make/tools/src/build/tools/buildmetaindex/BuildMetaIndex.java Changeset: ede1fd12e0da Author: allwin Date: 2013-09-30 14:28 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ede1fd12e0da 8012923: [parfait] File Descriptor Leak in jdk/src/windows/demo/jvmti/hprof/hprof_md.c Reviewed-by: chegar, sla, sspitsyn, mgronlun ! src/windows/demo/jvmti/hprof/hprof_md.c Changeset: d0de46a2cbd0 Author: ascarpino Date: 2013-09-19 11:59 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d0de46a2cbd0 7122707: Security Providers need to have their version numbers updated for JDK8 Reviewed-by: xuelei ! src/macosx/classes/apple/security/AppleProvider.java ! src/share/classes/com/sun/crypto/provider/SunJCE.java ! src/share/classes/com/sun/security/sasl/Provider.java ! src/share/classes/org/jcp/xml/dsig/internal/dom/XMLDSigRI.java ! src/share/classes/sun/security/ec/SunEC.java ! src/share/classes/sun/security/jgss/SunProvider.java ! src/share/classes/sun/security/jgss/wrapper/SunNativeProvider.java ! src/share/classes/sun/security/pkcs11/SunPKCS11.java ! src/share/classes/sun/security/provider/MD4.java ! src/share/classes/sun/security/provider/Sun.java ! src/share/classes/sun/security/provider/VerificationProvider.java ! src/share/classes/sun/security/rsa/SunRsaSign.java ! src/share/classes/sun/security/smartcardio/SunPCSC.java ! src/share/classes/sun/security/ssl/JsseJce.java ! src/share/classes/sun/security/ssl/SunJSSE.java ! src/windows/classes/sun/security/mscapi/SunMSCAPI.java + test/java/security/Provider/ProviderVersionCheck.java Changeset: 2434e79fc41f Author: ascarpino Date: 2013-09-18 14:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2434e79fc41f 8004283: test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh failing intermittently Reviewed-by: vinnie ! test/sun/security/pkcs11/KeyStore/SecretKeysBasic.sh Changeset: e4c897b33cb7 Author: ascarpino Date: 2013-09-02 09:52 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e4c897b33cb7 8009438: sun/security/pkcs11/Secmod tests failing on Ubuntu 12.04 Reviewed-by: vinnie ! src/share/classes/sun/security/pkcs11/Secmod.java Changeset: b4c259743371 Author: naoto Date: 2013-09-30 16:15 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b4c259743371 8016110: Japanese char (MS932) 0x5C cannot be used as an argument when quoted Reviewed-by: ksrini, akhil ! src/windows/bin/cmdtoargs.c + test/tools/launcher/I18NArgTest.java Changeset: f8b3ab514564 Author: psandoz Date: 2013-10-01 12:19 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f8b3ab514564 8024408: Specifications for Collection/List/Set/SortedSet.spliterator() need to document if all the (subclass) instances are required to return SIZED spliterators Reviewed-by: alanb ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/Set.java ! src/share/classes/java/util/SortedSet.java ! test/java/util/Spliterator/SpliteratorCharacteristics.java Changeset: bf52ea6bd9eb Author: aefimov Date: 2013-10-01 17:15 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bf52ea6bd9eb 8024707: TransformerException : item() return null with node list of length != 1 Reviewed-by: joehw, lancea + test/javax/xml/jaxp/parsers/8024707/TestFunc.java + test/javax/xml/jaxp/parsers/8024707/XSLT.java + test/javax/xml/jaxp/parsers/8024707/in.xml + test/javax/xml/jaxp/parsers/8024707/test.xsl Changeset: 8cfb2bddd95e Author: mduigou Date: 2013-09-30 15:50 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8cfb2bddd95e 7057785: Add note about optional support of recursive methods for self-referential Collection/Map Reviewed-by: scolebourne, darcy, mduigou Contributed-by: Stephen Colebourne ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/Map.java Changeset: f2e2326f787b Author: mduigou Date: 2013-10-01 10:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f2e2326f787b 8025067: Unconditionally throw NPE if null op provided to Arrays.parallelPrefix Reviewed-by: henryjen, chegar, psandoz ! src/share/classes/java/util/Arrays.java ! test/java/util/Arrays/ParallelPrefix.java Changeset: c32ab940a183 Author: mduigou Date: 2013-10-01 10:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c32ab940a183 8025686: Update jdk repo netbeans projects to support NetBeans 7.4 for Java 8 support Reviewed-by: lancea, chegar ! make/netbeans/common/java-data-native.ent ! make/netbeans/common/java-data-no-native.ent Changeset: 5a7bd9825c01 Author: vlivanov Date: 2013-09-23 19:51 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5a7bd9825c01 8001107: @Stable annotation for constant folding of lazily evaluated variables Reviewed-by: twisti, kvn, rbackman Contributed-by: john.r.rose at oracle.com, vladimir.x.ivanov at oracle.com ! src/share/classes/java/lang/invoke/LambdaForm.java ! src/share/classes/java/lang/invoke/MethodType.java ! src/share/classes/java/lang/invoke/MethodTypeForm.java + src/share/classes/java/lang/invoke/Stable.java Changeset: 1ed675532589 Author: vlivanov Date: 2013-09-18 20:12 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1ed675532589 8024616: JSR292: lazily initialize core NamedFunctions used for bootstrapping Reviewed-by: jrose ! src/share/classes/java/lang/invoke/DirectMethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandleImpl.java Changeset: bf1118ab775b Author: emc Date: 2013-10-01 17:35 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bf1118ab775b 8021398: j.l.r.Parameter.getAnnotatedType().getType() for not annotated use of type returns null Summary: Fixed issue with type annotation reflection framework that would cause getType of AnnotatedTypes to be null if no annotations were present. Reviewed-by: darcy, jfranck ! src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java + test/java/lang/reflect/Parameter/GetAnnotatedTypeTest.java Changeset: 84e7f6685319 Author: ksrini Date: 2013-10-01 15:40 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/84e7f6685319 8025342: NLS: unsupported translation format in jar/pack/DriverResource.java Reviewed-by: naoto, mfang ! src/share/classes/com/sun/java/util/jar/pack/Driver.java ! src/share/classes/com/sun/java/util/jar/pack/DriverResource.java Changeset: d90928a89af5 Author: drchase Date: 2013-09-27 13:32 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d90928a89af5 8022701: Accessibility checking: InvocationTargetException is thrown instead of IllegalAccessError Summary: Inserted code to convert specific exceptions, case-by-case, plus a test. Reviewed-by: jrose, twisti ! src/share/classes/java/lang/invoke/MethodHandleNatives.java + test/java/lang/invoke/8022701/BogoLoader.java + test/java/lang/invoke/8022701/InvokeSeveralWays.java + test/java/lang/invoke/8022701/Invoker.java + test/java/lang/invoke/8022701/MHIllegalAccess.java + test/java/lang/invoke/8022701/MethodSupplier.java Changeset: 3fca37c636be Author: xuelei Date: 2013-10-01 20:25 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3fca37c636be 8025123: SNI support in Kerberos cipher suites Reviewed-by: weijun, xuelei Contributed-by: Artem Smotrakov ! src/share/classes/sun/security/ssl/ClientHandshaker.java ! src/share/classes/sun/security/ssl/Handshaker.java ! src/share/classes/sun/security/ssl/KerberosClientKeyExchange.java ! src/share/classes/sun/security/ssl/krb5/KerberosClientKeyExchangeImpl.java ! test/sun/security/krb5/auto/SSL.java Changeset: 914c29c10bce Author: okutsu Date: 2013-10-02 15:31 +0900 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/914c29c10bce 6902861: (cal) GregorianCalendar roll WEEK_OF_YEAR is broken for January 1 2010 Reviewed-by: peytoia ! src/share/classes/java/util/GregorianCalendar.java + test/java/util/Calendar/Bug6902861.java Changeset: 368172cb6dc5 Author: coffeys Date: 2013-10-02 09:21 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/368172cb6dc5 8024952: ClassCastException in PlainSocketImpl.accept() when using custom socketImpl Reviewed-by: chegar ! src/windows/classes/java/net/PlainSocketImpl.java + test/java/net/PlainSocketImpl/CustomSocketImplFactory.java Changeset: 82e3150778e0 Author: okutsu Date: 2013-10-02 17:57 +0900 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/82e3150778e0 8022666: java.util.Calendar.set(int,int,int,int,int,int) documentation typo Reviewed-by: peytoia ! src/share/classes/java/util/Calendar.java Changeset: e1b04fd49204 Author: psandoz Date: 2013-10-01 18:20 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e1b04fd49204 8025535: Unsafe typecast in java.util.stream.SortedOps Reviewed-by: mduigou, chegar ! src/share/classes/java/util/stream/SortedOps.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java Changeset: 3bb89c509d59 Author: egahlin Date: 2013-10-01 17:48 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3bb89c509d59 6696975: JTop plugin fails if connected readonly to target JVM Reviewed-by: mchung, jbachorik, sla, sjiang ! src/share/demo/management/JTop/JTop.java Changeset: a6ac824b463d Author: wetmore Date: 2013-10-02 09:38 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a6ac824b463d 8025694: Rename getStrongSecureRandom based on feedback 8014838: getStrongSecureRandom() should require at least one implementation Reviewed-by: mullan, darcy ! src/share/classes/java/security/SecureRandom.java ! src/share/lib/security/java.security-windows ! test/sun/security/provider/SecureRandom/StrongSecureRandom.java Changeset: cb8946eda85b Author: emc Date: 2013-10-02 19:13 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cb8946eda85b 8020981: Update methods of java.lang.reflect.Parameter to throw correct exceptions Summary: Fix behavior of parameter reflection API for malformed class files. Reviewed-by: darcy ! src/share/classes/java/lang/reflect/Executable.java + src/share/classes/java/lang/reflect/MalformedParametersException.java ! src/share/classes/java/lang/reflect/Parameter.java + test/java/lang/reflect/Parameter/BadClassFiles.java Changeset: 811c35a6a58f Author: psandoz Date: 2013-10-02 16:34 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/811c35a6a58f 8025534: Unsafe typecast in java.util.stream.Streams.Nodes 8025538: Unsafe typecast in java.util.stream.SpinedBuffer 8025533: Unsafe typecast in java.util.stream.Streams.RangeIntSpliterator.splitPoint() 8025525: Unsafe typecast in java.util.stream.Node.OfPrimitive.asArray() Reviewed-by: chegar ! src/share/classes/java/util/stream/Node.java ! src/share/classes/java/util/stream/Nodes.java ! src/share/classes/java/util/stream/SortedOps.java ! src/share/classes/java/util/stream/SpinedBuffer.java ! src/share/classes/java/util/stream/Streams.java Changeset: c55a7941050c Author: psandoz Date: 2013-10-03 10:59 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c55a7941050c 8025567: Mark relevant public stream tests as serialization hostile Reviewed-by: alanb ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/ForEachOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/StreamBuilderTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/ToArrayOpTest.java Changeset: 5d6dc0cba08f Author: dsamersoff Date: 2013-10-03 16:54 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5d6dc0cba08f 8009213: sun/management/jdp/JdpTest.sh fails with exit code 1 Summary: There's no guarantee that the java process has executed far enough to be found by jps when we try to obtain it's pid. Reviewed-by: sla ! test/sun/management/jdp/JdpTest.sh Changeset: 9c32a9490eac Author: kizune Date: 2013-10-03 17:40 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9c32a9490eac 8025738: locale related test fails on langtools mac 10.7 test host Reviewed-by: ksrini ! test/tools/launcher/DiacriticTest.java Changeset: 8d8b809dd294 Author: rfield Date: 2013-10-03 10:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8d8b809dd294 8010433: Remove lambda metafactory work-around to JDK-8005119 Summary: Restore invokespecial to lambda metafactory Reviewed-by: ksrini ! src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java Changeset: 1b3616c4a836 Author: rfield Date: 2013-10-03 11:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1b3616c4a836 8020849: jdk/lambda/vm/DefaultMethodsTest.java Summary: Bridge generation has been removed from the VM. Fix is to remove tests that no longer make sense. Reviewed-by: ksrini ! test/jdk/lambda/vm/DefaultMethodsTest.java Changeset: 01b8604e8268 Author: rriggs Date: 2013-08-22 10:01 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/01b8604e8268 8024896: Refactor java.time serialization tests into separate subpackage Summary: Move serialization tests to .serial subpackage Reviewed-by: sherman Contributed-by: paul.rank at oracle.com ! test/java/time/tck/java/time/TCKDuration.java ! test/java/time/tck/java/time/TCKInstant.java ! test/java/time/tck/java/time/TCKLocalDate.java ! test/java/time/tck/java/time/TCKLocalDateTime.java ! test/java/time/tck/java/time/TCKLocalTime.java ! test/java/time/tck/java/time/TCKMonthDay.java ! test/java/time/tck/java/time/TCKOffsetDateTime.java ! test/java/time/tck/java/time/TCKOffsetTime.java ! test/java/time/tck/java/time/TCKPeriod.java ! test/java/time/tck/java/time/TCKYear.java ! test/java/time/tck/java/time/TCKYearMonth.java ! test/java/time/tck/java/time/TCKZoneId.java ! test/java/time/tck/java/time/TCKZoneOffset.java ! test/java/time/tck/java/time/TCKZonedDateTime.java ! test/java/time/tck/java/time/chrono/TCKChronoLocalDate.java ! test/java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java - test/java/time/tck/java/time/chrono/TCKChronologySerialization.java + test/java/time/tck/java/time/chrono/serial/TCKChronoLocalDate.java + test/java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTime.java + test/java/time/tck/java/time/chrono/serial/TCKChronologySerialization.java + test/java/time/tck/java/time/serial/TCKDuration.java + test/java/time/tck/java/time/serial/TCKInstant.java + test/java/time/tck/java/time/serial/TCKLocalDate.java + test/java/time/tck/java/time/serial/TCKLocalDateTime.java + test/java/time/tck/java/time/serial/TCKLocalTime.java + test/java/time/tck/java/time/serial/TCKMonthDay.java + test/java/time/tck/java/time/serial/TCKOffsetDateTime.java + test/java/time/tck/java/time/serial/TCKOffsetTime.java + test/java/time/tck/java/time/serial/TCKPeriod.java + test/java/time/tck/java/time/serial/TCKYear.java + test/java/time/tck/java/time/serial/TCKYearMonth.java + test/java/time/tck/java/time/serial/TCKZoneId.java + test/java/time/tck/java/time/serial/TCKZoneOffset.java + test/java/time/tck/java/time/serial/TCKZonedDateTime.java ! test/java/time/tck/java/time/temporal/TCKWeekFields.java + test/java/time/tck/java/time/temporal/serial/TCKWeekFields.java ! test/java/time/tck/java/time/zone/TCKFixedZoneRules.java ! test/java/time/tck/java/time/zone/TCKZoneOffsetTransition.java ! test/java/time/tck/java/time/zone/TCKZoneOffsetTransitionRule.java ! test/java/time/tck/java/time/zone/TCKZoneRules.java + test/java/time/tck/java/time/zone/serial/TCKFixedZoneRules.java + test/java/time/tck/java/time/zone/serial/TCKZoneOffsetTransition.java + test/java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRule.java + test/java/time/tck/java/time/zone/serial/TCKZoneRules.java Changeset: e813b58bd6db Author: rriggs Date: 2013-10-03 15:16 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e813b58bd6db 8024427: Missing java.time.chrono serialization tests Summary: Add tests and cleanup existing serialization tests Reviewed-by: sherman ! src/share/classes/java/time/temporal/ValueRange.java ! test/java/time/tck/java/time/AbstractTCKTest.java ! test/java/time/tck/java/time/TCKClock_Fixed.java ! test/java/time/tck/java/time/TCKClock_Offset.java ! test/java/time/tck/java/time/TCKClock_System.java ! test/java/time/tck/java/time/TCKClock_Tick.java ! test/java/time/tck/java/time/chrono/CopticDate.java ! test/java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java ! test/java/time/tck/java/time/chrono/TCKChronology.java ! test/java/time/tck/java/time/chrono/TCKTestServiceLoader.java ! test/java/time/tck/java/time/chrono/serial/TCKChronoLocalDateSerialization.java < test/java/time/tck/java/time/chrono/serial/TCKChronoLocalDate.java ! test/java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTimeSerialization.java < test/java/time/tck/java/time/chrono/serial/TCKChronoLocalDateTime.java + test/java/time/tck/java/time/chrono/serial/TCKChronoZonedDateTimeSerialization.java ! test/java/time/tck/java/time/chrono/serial/TCKChronologySerialization.java + test/java/time/tck/java/time/chrono/serial/TCKCopticSerialization.java + test/java/time/tck/java/time/chrono/serial/TCKEraSerialization.java + test/java/time/tck/java/time/serial/TCKClockSerialization.java ! test/java/time/tck/java/time/serial/TCKDurationSerialization.java < test/java/time/tck/java/time/serial/TCKDuration.java ! test/java/time/tck/java/time/serial/TCKInstantSerialization.java < test/java/time/tck/java/time/serial/TCKInstant.java ! test/java/time/tck/java/time/serial/TCKLocalDateSerialization.java < test/java/time/tck/java/time/serial/TCKLocalDate.java ! test/java/time/tck/java/time/serial/TCKLocalDateTimeSerialization.java < test/java/time/tck/java/time/serial/TCKLocalDateTime.java ! test/java/time/tck/java/time/serial/TCKLocalTimeSerialization.java < test/java/time/tck/java/time/serial/TCKLocalTime.java ! test/java/time/tck/java/time/serial/TCKMonthDaySerialization.java < test/java/time/tck/java/time/serial/TCKMonthDay.java ! test/java/time/tck/java/time/serial/TCKOffsetDateTimeSerialization.java < test/java/time/tck/java/time/serial/TCKOffsetDateTime.java ! test/java/time/tck/java/time/serial/TCKOffsetTimeSerialization.java < test/java/time/tck/java/time/serial/TCKOffsetTime.java ! test/java/time/tck/java/time/serial/TCKPeriodSerialization.java < test/java/time/tck/java/time/serial/TCKPeriod.java ! test/java/time/tck/java/time/serial/TCKYearMonthSerialization.java < test/java/time/tck/java/time/serial/TCKYearMonth.java ! test/java/time/tck/java/time/serial/TCKYearSerialization.java < test/java/time/tck/java/time/serial/TCKYear.java ! test/java/time/tck/java/time/serial/TCKZoneIdSerialization.java < test/java/time/tck/java/time/serial/TCKZoneId.java ! test/java/time/tck/java/time/serial/TCKZoneOffsetSerialization.java < test/java/time/tck/java/time/serial/TCKZoneOffset.java ! test/java/time/tck/java/time/serial/TCKZonedDateTimeSerialization.java < test/java/time/tck/java/time/serial/TCKZonedDateTime.java ! test/java/time/tck/java/time/temporal/TCKJulianFields.java + test/java/time/tck/java/time/temporal/serial/TCKChronoFieldSerialization.java + test/java/time/tck/java/time/temporal/serial/TCKChronoUnitSerialization.java + test/java/time/tck/java/time/temporal/serial/TCKJulianFieldsSerialization.java + test/java/time/tck/java/time/temporal/serial/TCKValueRangeSerialization.java ! test/java/time/tck/java/time/temporal/serial/TCKWeekFieldsSerialization.java < test/java/time/tck/java/time/temporal/serial/TCKWeekFields.java ! test/java/time/tck/java/time/zone/TCKZoneOffsetTransition.java ! test/java/time/tck/java/time/zone/TCKZoneOffsetTransitionRule.java ! test/java/time/tck/java/time/zone/serial/TCKFixedZoneRulesSerialization.java < test/java/time/tck/java/time/zone/serial/TCKFixedZoneRules.java ! test/java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRuleSerialization.java < test/java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionRule.java ! test/java/time/tck/java/time/zone/serial/TCKZoneOffsetTransitionSerialization.java < test/java/time/tck/java/time/zone/serial/TCKZoneOffsetTransition.java ! test/java/time/tck/java/time/zone/serial/TCKZoneRulesSerialization.java < test/java/time/tck/java/time/zone/serial/TCKZoneRules.java ! test/java/time/test/java/time/AbstractTest.java ! test/java/time/test/java/time/TestDuration.java ! test/java/time/test/java/time/temporal/TestDateTimeValueRange.java Changeset: 77ba1e67707c Author: allwin Date: 2013-10-04 15:00 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/77ba1e67707c 8025829: Add java/lang/instrument/RetransformBigClass.sh to problemlist Reviewed-by: sla, jbachorik ! test/ProblemList.txt Changeset: b5aad88cbf12 Author: vinnie Date: 2013-10-04 16:05 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b5aad88cbf12 8008296: keytool utility doesn't support '-importpassword' command Reviewed-by: weijun ! src/share/classes/sun/security/tools/keytool/Main.java ! src/share/classes/sun/security/tools/keytool/Resources.java + test/sun/security/tools/keytool/StorePasswords.java + test/sun/security/tools/keytool/StorePasswordsByShell.sh Changeset: 1de0fac9b962 Author: rriggs Date: 2013-08-29 20:38 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1de0fac9b962 8023764: Optimize Period addition Summary: Optimise plus/minus for common cases Reviewed-by: sherman Contributed-by: scolebourne at joda.org ! src/share/classes/java/time/LocalDate.java ! src/share/classes/java/time/LocalDateTime.java ! src/share/classes/java/time/ZonedDateTime.java Changeset: 356df1b99976 Author: rriggs Date: 2013-08-30 11:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/356df1b99976 8023763: Rename ChronoDateImpl Summary: Rename ChronoDateImpl to ChronoLocalDateImpl Reviewed-by: sherman Contributed-by: scolebourne at joda.org - src/share/classes/java/time/chrono/ChronoDateImpl.java ! src/share/classes/java/time/chrono/ChronoLocalDate.java + src/share/classes/java/time/chrono/ChronoLocalDateImpl.java ! src/share/classes/java/time/chrono/ChronoLocalDateTimeImpl.java ! src/share/classes/java/time/chrono/HijrahDate.java ! src/share/classes/java/time/chrono/JapaneseDate.java ! src/share/classes/java/time/chrono/MinguoDate.java ! src/share/classes/java/time/chrono/ThaiBuddhistDate.java Changeset: 5d73f7a2db51 Author: rriggs Date: 2013-09-04 15:18 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5d73f7a2db51 8023762: Add ChronoPeriod interface and bind period to Chronology Summary: Make Period ISO-only, adding a Chronology-specific period concept Reviewed-by: sherman Contributed-by: scolebourne at joda.org ! src/share/classes/java/time/LocalDate.java ! src/share/classes/java/time/Period.java ! src/share/classes/java/time/chrono/ChronoLocalDate.java + src/share/classes/java/time/chrono/ChronoPeriod.java + src/share/classes/java/time/chrono/ChronoPeriodImpl.java ! src/share/classes/java/time/chrono/Chronology.java ! src/share/classes/java/time/chrono/HijrahDate.java ! src/share/classes/java/time/chrono/IsoChronology.java ! src/share/classes/java/time/chrono/JapaneseDate.java ! src/share/classes/java/time/chrono/MinguoDate.java ! src/share/classes/java/time/chrono/Ser.java ! src/share/classes/java/time/chrono/ThaiBuddhistDate.java ! src/share/classes/java/time/temporal/Temporal.java ! test/java/time/tck/java/time/TCKPeriod.java + test/java/time/tck/java/time/chrono/TCKChronoPeriod.java ! test/java/time/tck/java/time/chrono/TCKJapaneseChronology.java ! test/java/time/tck/java/time/chrono/TCKMinguoChronology.java ! test/java/time/tck/java/time/chrono/TCKThaiBuddhistChronology.java ! test/java/time/test/java/time/chrono/TestUmmAlQuraChronology.java Changeset: 79077f1641cc Author: rriggs Date: 2013-09-14 22:46 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/79077f1641cc 8024835: Change until() to accept any compatible temporal Summary: Method until(Temporal,TemporalUnit) now uses from() to convert; Enhance from() methods where necessary Reviewed-by: sherman Contributed-by: scolebourne at joda.org ! src/share/classes/java/time/Duration.java ! src/share/classes/java/time/Instant.java ! src/share/classes/java/time/LocalDate.java ! src/share/classes/java/time/LocalDateTime.java ! src/share/classes/java/time/LocalTime.java ! src/share/classes/java/time/MonthDay.java ! src/share/classes/java/time/OffsetDateTime.java ! src/share/classes/java/time/OffsetTime.java ! src/share/classes/java/time/Year.java ! src/share/classes/java/time/YearMonth.java ! src/share/classes/java/time/ZoneOffset.java ! src/share/classes/java/time/ZonedDateTime.java ! src/share/classes/java/time/chrono/ChronoLocalDate.java ! src/share/classes/java/time/chrono/ChronoLocalDateImpl.java ! src/share/classes/java/time/chrono/ChronoLocalDateTime.java ! src/share/classes/java/time/chrono/ChronoLocalDateTimeImpl.java ! src/share/classes/java/time/chrono/ChronoZonedDateTime.java ! src/share/classes/java/time/chrono/ChronoZonedDateTimeImpl.java ! src/share/classes/java/time/temporal/ChronoUnit.java ! src/share/classes/java/time/temporal/IsoFields.java ! src/share/classes/java/time/temporal/Temporal.java ! src/share/classes/java/time/temporal/TemporalUnit.java ! test/java/time/tck/java/time/TCKDuration.java ! test/java/time/tck/java/time/TCKInstant.java ! test/java/time/tck/java/time/TCKLocalDate.java ! test/java/time/tck/java/time/TCKLocalDateTime.java ! test/java/time/tck/java/time/TCKLocalTime.java ! test/java/time/tck/java/time/TCKOffsetDateTime.java ! test/java/time/tck/java/time/TCKOffsetTime.java ! test/java/time/tck/java/time/TCKYear.java ! test/java/time/tck/java/time/TCKYearMonth.java ! test/java/time/tck/java/time/TCKZonedDateTime.java ! test/java/time/tck/java/time/chrono/CopticDate.java ! test/java/time/tck/java/time/temporal/TCKIsoFields.java Changeset: 14a187dc4ffe Author: rriggs Date: 2013-10-04 12:01 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/14a187dc4ffe 8024999: Instant.Parse typo in example Summary: javadoc only fix to correct example to use "." and "Z" Reviewed-by: sherman ! src/share/classes/java/time/Instant.java Changeset: f9c701ba04e7 Author: rriggs Date: 2013-09-14 22:50 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f9c701ba04e7 8024807: Add getChronlogy() to CLDT/CZDT Summary: Alternative to method is clunky and hard to find Reviewed-by: sherman Contributed-by: scolebourne at joda.org ! src/share/classes/java/time/chrono/ChronoLocalDateTime.java ! src/share/classes/java/time/chrono/ChronoLocalDateTimeImpl.java ! src/share/classes/java/time/chrono/ChronoZonedDateTime.java ! src/share/classes/java/time/chrono/ChronoZonedDateTimeImpl.java ! test/java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java ! test/java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java Changeset: e12b912ab98e Author: rriggs Date: 2013-09-14 22:54 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e12b912ab98e 8024834: Better return type for TemporalField resolve Summary: Allow resolve method to return more than just ChronoLocalDate Reviewed-by: sherman Contributed-by: scolebourne at joda.org ! src/share/classes/java/time/format/Parsed.java ! src/share/classes/java/time/temporal/TemporalField.java ! test/java/time/tck/java/time/format/TCKDateTimeParseResolver.java Changeset: 7736abdf0805 Author: rfield Date: 2013-10-04 09:54 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7736abdf0805 8021186: jdk/lambda/vm/DefaultMethodsTest.java fails Summary: remove DefaultMethodsTest from jdk/test/problemList.txt Reviewed-by: mduigou ! test/ProblemList.txt Changeset: 66181f7991bd Author: bpatel Date: 2013-10-04 15:25 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/66181f7991bd 8025741: Fix jdk/make/docs/Makefile to point to correct docs URL for JDK 8. Reviewed-by: tbell ! make/docs/Makefile Changeset: 7d2112abbb1d Author: coffeys Date: 2013-10-04 16:27 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7d2112abbb1d 8016271: wsimport -clientjar does not create portable jars on Windows due to hardcoded backslash Reviewed-by: mkos, chegar + test/javax/xml/ws/clientjar/TestService.java + test/javax/xml/ws/clientjar/TestWsImport.java Changeset: 44da760eed4b Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/44da760eed4b 8024761: JSR 292 improve performance of generic invocation Summary: use a per-MH one element cache for MH.asType to speed up MH.invoke; also cache enough MH constants to cache LMF.metafactory Reviewed-by: twisti ! src/share/classes/java/lang/invoke/BoundMethodHandle.java ! src/share/classes/java/lang/invoke/CallSite.java - src/share/classes/java/lang/invoke/InvokeGeneric.java ! src/share/classes/java/lang/invoke/Invokers.java ! src/share/classes/java/lang/invoke/LambdaForm.java ! src/share/classes/java/lang/invoke/MemberName.java ! src/share/classes/java/lang/invoke/MethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/share/classes/java/lang/invoke/MethodHandleNatives.java ! src/share/classes/java/lang/invoke/MethodHandles.java ! src/share/classes/java/lang/invoke/MethodTypeForm.java Changeset: 97d5cc1e7586 Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/97d5cc1e7586 8001105: findVirtual of Object[].clone produces internal error Summary: Replicate JVM logic for access control that makes Object.clone appear public when applied to an array type. Reviewed-by: twisti ! src/share/classes/java/lang/invoke/MethodHandles.java ! test/java/lang/invoke/MethodHandlesTest.java Changeset: 91535ade7349 Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/91535ade7349 8019417: JSR 292 javadoc should clarify method handle arity limits Summary: clarification of erroneous reading of spec. that led to 7194534 Reviewed-by: twisti, darcy ! src/share/classes/java/lang/invoke/MethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandles.java ! test/java/lang/invoke/BigArityTest.java Changeset: d391e062b983 Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d391e062b983 8001109: arity mismatch on a call to spreader method handle should elicit IllegalArgumentException Summary: Document error conditions that may occur when calling a "spreader" method handle. Use IAE in all cases. Reviewed-by: twisti, vlivanov ! src/share/classes/java/lang/invoke/MethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/share/classes/java/lang/invoke/MethodHandles.java ! test/java/lang/invoke/JavaDocExamplesTest.java Changeset: acdf5bf1a918 Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/acdf5bf1a918 8001108: an attempt to use "" as a method name should elicit NoSuchMethodException Summary: add an explicit check for leading "<", upgrade the unit tests Reviewed-by: twisti, darcy ! src/share/classes/java/lang/invoke/MethodHandles.java ! test/java/lang/invoke/JavaDocExamplesTest.java ! test/java/lang/invoke/MethodHandlesTest.java Changeset: df6236da299d Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/df6236da299d 8024599: JSR 292 direct method handles need to respect initialization rules for static members Summary: Align MH semantic with bytecode behavior of constructor and static member accesses, regarding invocation. Reviewed-by: twisti, darcy, abuckley, vlivanov ! src/share/classes/java/lang/invoke/MethodHandles.java + test/java/lang/invoke/CallStaticInitOrder.java Changeset: eb3cfc69c16e Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/eb3cfc69c16e 8001110: method handles should have a collectArguments transform, generalizing asCollector Summary: promote an existing private method; make unit tests on all argument positions to arity 10 with mixed types Reviewed-by: twisti, vlivanov ! src/share/classes/java/lang/invoke/MethodHandles.java ! src/share/classes/sun/invoke/util/ValueConversions.java ! test/java/lang/invoke/JavaDocExamplesTest.java ! test/java/lang/invoke/MethodHandlesTest.java Changeset: b670477bff8f Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b670477bff8f 8025112: JSR 292 spec updates for security manager and caller sensitivity Summary: align CONSTANT_MethodHandle and Lookup.find* API calls, clarify security manager & @CallerSensitive interactions Reviewed-by: mchung, twisti ! src/share/classes/java/lang/invoke/MethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/share/classes/java/lang/invoke/MethodHandleInfo.java ! src/share/classes/java/lang/invoke/MethodHandleProxies.java ! src/share/classes/java/lang/invoke/MethodHandles.java ! test/java/lang/invoke/TestPrivateMember.java Changeset: 6623c675e734 Author: jrose Date: 2013-10-05 05:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6623c675e734 8024438: JSR 292 API specification maintenance for JDK 8 Summary: add wildcard to unreflectConstructor, various clarifications and minor edits Reviewed-by: mchung, darcy, twisti ! src/share/classes/java/lang/invoke/BoundMethodHandle.java ! src/share/classes/java/lang/invoke/CallSite.java ! src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/share/classes/java/lang/invoke/LambdaForm.java ! src/share/classes/java/lang/invoke/MethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandleInfo.java ! src/share/classes/java/lang/invoke/MethodHandles.java ! src/share/classes/java/lang/invoke/MethodType.java ! src/share/classes/java/lang/invoke/MutableCallSite.java ! src/share/classes/java/lang/invoke/SwitchPoint.java ! src/share/classes/sun/invoke/WrapperInstance.java ! src/share/classes/sun/invoke/util/VerifyAccess.java ! src/share/classes/sun/invoke/util/VerifyType.java ! test/java/lang/invoke/AccessControlTest.java ! test/java/lang/invoke/MethodHandlesTest.java ! test/java/lang/invoke/RevealDirectTest.java Changeset: 0ac9dc315071 Author: alanb Date: 2013-10-07 11:48 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0ac9dc315071 8025983: Typo in Javadoc of Files.isRegularFile() Reviewed-by: mchung, chegar ! src/share/classes/java/nio/file/Files.java ! src/share/classes/java/nio/file/Path.java Changeset: f0ad3e2918b4 Author: henryjen Date: 2013-10-07 11:25 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f0ad3e2918b4 8025968: Integrate test improvements made in lambda repo Reviewed-by: psandoz ! test/java/util/stream/bootlib/java/util/stream/OpTestCase.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/ExplodeOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java Changeset: 0cffe1dab0bf Author: henryjen Date: 2013-10-07 15:18 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0cffe1dab0bf 8026009: Changes for 8025968 break all stream tests Reviewed-by: mduigou ! test/java/util/stream/bootlib/java/util/stream/OpTestCase.java Changeset: 0d5f4f1782e8 Author: xuelei Date: 2013-10-07 18:46 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0d5f4f1782e8 6956398: make ephemeral DH key match the length of the certificate key Reviewed-by: weijun ! src/share/classes/sun/security/ssl/ServerHandshaker.java + test/sun/security/ssl/com/sun/net/ssl/internal/ssl/DHKeyExchange/DHEKeySizing.java Changeset: b90dcd1a71bf Author: psandoz Date: 2013-10-08 11:17 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b90dcd1a71bf 8025136: SplittableRandom enchancements Reviewed-by: psandoz, martin Contributed-by: Doug Lea

, Guy Steele ! src/share/classes/java/util/Random.java ! src/share/classes/java/util/SplittableRandom.java ! src/share/classes/java/util/concurrent/ThreadLocalRandom.java Changeset: 95bb56c61276 Author: alanb Date: 2013-10-08 10:49 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/95bb56c61276 8024788: (fs) Files.readAllBytes uses FileChannel which may not be supported by all providers Reviewed-by: chegar ! src/share/classes/java/nio/file/Files.java ! test/java/nio/file/Files/BytesAndLines.java Changeset: f1e31376f419 Author: robm Date: 2013-10-09 00:10 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f1e31376f419 7180557: InetAddress.getLocalHost throws UnknownHostException on java7u5 on OSX webbugs Reviewed-by: chegar, dsamersoff ! src/solaris/native/java/net/Inet4AddressImpl.c ! src/solaris/native/java/net/Inet6AddressImpl.c Changeset: 2ea162b2ff55 Author: alanb Date: 2013-10-09 09:20 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2ea162b2ff55 8008662: Add @jdk.Exported to JDK-specific/exported APIs Reviewed-by: chegar, vinnie, dfuchs, mchung, mullan, darcy ! src/share/classes/com/sun/jdi/AbsentInformationException.java ! src/share/classes/com/sun/jdi/Accessible.java ! src/share/classes/com/sun/jdi/ArrayReference.java ! src/share/classes/com/sun/jdi/ArrayType.java ! src/share/classes/com/sun/jdi/BooleanType.java ! src/share/classes/com/sun/jdi/BooleanValue.java ! src/share/classes/com/sun/jdi/Bootstrap.java ! src/share/classes/com/sun/jdi/ByteType.java ! src/share/classes/com/sun/jdi/ByteValue.java ! src/share/classes/com/sun/jdi/CharType.java ! src/share/classes/com/sun/jdi/CharValue.java ! src/share/classes/com/sun/jdi/ClassLoaderReference.java ! src/share/classes/com/sun/jdi/ClassNotLoadedException.java ! src/share/classes/com/sun/jdi/ClassNotPreparedException.java ! src/share/classes/com/sun/jdi/ClassObjectReference.java ! src/share/classes/com/sun/jdi/ClassType.java ! src/share/classes/com/sun/jdi/DoubleType.java ! src/share/classes/com/sun/jdi/DoubleValue.java ! src/share/classes/com/sun/jdi/Field.java ! src/share/classes/com/sun/jdi/FloatType.java ! src/share/classes/com/sun/jdi/FloatValue.java ! src/share/classes/com/sun/jdi/IncompatibleThreadStateException.java ! src/share/classes/com/sun/jdi/InconsistentDebugInfoException.java ! src/share/classes/com/sun/jdi/IntegerType.java ! src/share/classes/com/sun/jdi/IntegerValue.java ! src/share/classes/com/sun/jdi/InterfaceType.java ! src/share/classes/com/sun/jdi/InternalException.java ! src/share/classes/com/sun/jdi/InvalidCodeIndexException.java ! src/share/classes/com/sun/jdi/InvalidLineNumberException.java ! src/share/classes/com/sun/jdi/InvalidStackFrameException.java ! src/share/classes/com/sun/jdi/InvalidTypeException.java ! src/share/classes/com/sun/jdi/InvocationException.java ! src/share/classes/com/sun/jdi/JDIPermission.java ! src/share/classes/com/sun/jdi/LocalVariable.java ! src/share/classes/com/sun/jdi/Locatable.java ! src/share/classes/com/sun/jdi/Location.java ! src/share/classes/com/sun/jdi/LongType.java ! src/share/classes/com/sun/jdi/LongValue.java ! src/share/classes/com/sun/jdi/Method.java ! src/share/classes/com/sun/jdi/Mirror.java ! src/share/classes/com/sun/jdi/MonitorInfo.java ! src/share/classes/com/sun/jdi/NativeMethodException.java ! src/share/classes/com/sun/jdi/ObjectCollectedException.java ! src/share/classes/com/sun/jdi/ObjectReference.java ! src/share/classes/com/sun/jdi/PathSearchingVirtualMachine.java ! src/share/classes/com/sun/jdi/PrimitiveType.java ! src/share/classes/com/sun/jdi/PrimitiveValue.java ! src/share/classes/com/sun/jdi/ReferenceType.java ! src/share/classes/com/sun/jdi/ShortType.java ! src/share/classes/com/sun/jdi/ShortValue.java ! src/share/classes/com/sun/jdi/StackFrame.java ! src/share/classes/com/sun/jdi/StringReference.java ! src/share/classes/com/sun/jdi/ThreadGroupReference.java ! src/share/classes/com/sun/jdi/ThreadReference.java ! src/share/classes/com/sun/jdi/Type.java ! src/share/classes/com/sun/jdi/TypeComponent.java ! src/share/classes/com/sun/jdi/VMCannotBeModifiedException.java ! src/share/classes/com/sun/jdi/VMDisconnectedException.java ! src/share/classes/com/sun/jdi/VMMismatchException.java ! src/share/classes/com/sun/jdi/VMOutOfMemoryException.java ! src/share/classes/com/sun/jdi/Value.java ! src/share/classes/com/sun/jdi/VirtualMachine.java ! src/share/classes/com/sun/jdi/VirtualMachineManager.java ! src/share/classes/com/sun/jdi/VoidType.java ! src/share/classes/com/sun/jdi/VoidValue.java ! src/share/classes/com/sun/jdi/connect/AttachingConnector.java ! src/share/classes/com/sun/jdi/connect/Connector.java ! src/share/classes/com/sun/jdi/connect/IllegalConnectorArgumentsException.java ! src/share/classes/com/sun/jdi/connect/LaunchingConnector.java ! src/share/classes/com/sun/jdi/connect/ListeningConnector.java ! src/share/classes/com/sun/jdi/connect/Transport.java ! src/share/classes/com/sun/jdi/connect/TransportTimeoutException.java ! src/share/classes/com/sun/jdi/connect/VMStartException.java + src/share/classes/com/sun/jdi/connect/package-info.java - src/share/classes/com/sun/jdi/connect/package.html ! src/share/classes/com/sun/jdi/connect/spi/ClosedConnectionException.java ! src/share/classes/com/sun/jdi/connect/spi/Connection.java ! src/share/classes/com/sun/jdi/connect/spi/TransportService.java + src/share/classes/com/sun/jdi/connect/spi/package-info.java - src/share/classes/com/sun/jdi/connect/spi/package.html ! src/share/classes/com/sun/jdi/event/AccessWatchpointEvent.java ! src/share/classes/com/sun/jdi/event/BreakpointEvent.java ! src/share/classes/com/sun/jdi/event/ClassPrepareEvent.java ! src/share/classes/com/sun/jdi/event/ClassUnloadEvent.java ! src/share/classes/com/sun/jdi/event/Event.java ! src/share/classes/com/sun/jdi/event/EventIterator.java ! src/share/classes/com/sun/jdi/event/EventQueue.java ! src/share/classes/com/sun/jdi/event/EventSet.java ! src/share/classes/com/sun/jdi/event/ExceptionEvent.java ! src/share/classes/com/sun/jdi/event/LocatableEvent.java ! src/share/classes/com/sun/jdi/event/MethodEntryEvent.java ! src/share/classes/com/sun/jdi/event/MethodExitEvent.java ! src/share/classes/com/sun/jdi/event/ModificationWatchpointEvent.java ! src/share/classes/com/sun/jdi/event/MonitorContendedEnterEvent.java ! src/share/classes/com/sun/jdi/event/MonitorContendedEnteredEvent.java ! src/share/classes/com/sun/jdi/event/MonitorWaitEvent.java ! src/share/classes/com/sun/jdi/event/MonitorWaitedEvent.java ! src/share/classes/com/sun/jdi/event/StepEvent.java ! src/share/classes/com/sun/jdi/event/ThreadDeathEvent.java ! src/share/classes/com/sun/jdi/event/ThreadStartEvent.java ! src/share/classes/com/sun/jdi/event/VMDeathEvent.java ! src/share/classes/com/sun/jdi/event/VMDisconnectEvent.java ! src/share/classes/com/sun/jdi/event/VMStartEvent.java ! src/share/classes/com/sun/jdi/event/WatchpointEvent.java + src/share/classes/com/sun/jdi/event/package-info.java - src/share/classes/com/sun/jdi/event/package.html + src/share/classes/com/sun/jdi/package-info.java - src/share/classes/com/sun/jdi/package.html ! src/share/classes/com/sun/jdi/request/AccessWatchpointRequest.java ! src/share/classes/com/sun/jdi/request/BreakpointRequest.java ! src/share/classes/com/sun/jdi/request/ClassPrepareRequest.java ! src/share/classes/com/sun/jdi/request/ClassUnloadRequest.java ! src/share/classes/com/sun/jdi/request/DuplicateRequestException.java ! src/share/classes/com/sun/jdi/request/EventRequest.java ! src/share/classes/com/sun/jdi/request/EventRequestManager.java ! src/share/classes/com/sun/jdi/request/ExceptionRequest.java ! src/share/classes/com/sun/jdi/request/InvalidRequestStateException.java ! src/share/classes/com/sun/jdi/request/MethodEntryRequest.java ! src/share/classes/com/sun/jdi/request/MethodExitRequest.java ! src/share/classes/com/sun/jdi/request/ModificationWatchpointRequest.java ! src/share/classes/com/sun/jdi/request/MonitorContendedEnterRequest.java ! src/share/classes/com/sun/jdi/request/MonitorContendedEnteredRequest.java ! src/share/classes/com/sun/jdi/request/MonitorWaitRequest.java ! src/share/classes/com/sun/jdi/request/MonitorWaitedRequest.java ! src/share/classes/com/sun/jdi/request/StepRequest.java ! src/share/classes/com/sun/jdi/request/ThreadDeathRequest.java ! src/share/classes/com/sun/jdi/request/ThreadStartRequest.java ! src/share/classes/com/sun/jdi/request/VMDeathRequest.java ! src/share/classes/com/sun/jdi/request/WatchpointRequest.java + src/share/classes/com/sun/jdi/request/package-info.java - src/share/classes/com/sun/jdi/request/package.html ! src/share/classes/com/sun/management/GarbageCollectionNotificationInfo.java ! src/share/classes/com/sun/management/GarbageCollectorMXBean.java ! src/share/classes/com/sun/management/GcInfo.java ! src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java ! src/share/classes/com/sun/management/OperatingSystemMXBean.java ! src/share/classes/com/sun/management/ThreadMXBean.java ! src/share/classes/com/sun/management/UnixOperatingSystemMXBean.java ! src/share/classes/com/sun/management/VMOption.java + src/share/classes/com/sun/management/package-info.java - src/share/classes/com/sun/management/package.html ! src/share/classes/com/sun/net/httpserver/Authenticator.java ! src/share/classes/com/sun/net/httpserver/BasicAuthenticator.java ! src/share/classes/com/sun/net/httpserver/Filter.java ! src/share/classes/com/sun/net/httpserver/Headers.java ! src/share/classes/com/sun/net/httpserver/HttpContext.java ! src/share/classes/com/sun/net/httpserver/HttpExchange.java ! src/share/classes/com/sun/net/httpserver/HttpHandler.java ! src/share/classes/com/sun/net/httpserver/HttpPrincipal.java ! src/share/classes/com/sun/net/httpserver/HttpServer.java ! src/share/classes/com/sun/net/httpserver/HttpsConfigurator.java ! src/share/classes/com/sun/net/httpserver/HttpsExchange.java ! src/share/classes/com/sun/net/httpserver/HttpsParameters.java ! src/share/classes/com/sun/net/httpserver/HttpsServer.java ! src/share/classes/com/sun/net/httpserver/package-info.java ! src/share/classes/com/sun/net/httpserver/spi/HttpServerProvider.java ! src/share/classes/com/sun/net/httpserver/spi/package-info.java ! src/share/classes/com/sun/nio/sctp/AbstractNotificationHandler.java ! src/share/classes/com/sun/nio/sctp/Association.java ! src/share/classes/com/sun/nio/sctp/AssociationChangeNotification.java ! src/share/classes/com/sun/nio/sctp/HandlerResult.java ! src/share/classes/com/sun/nio/sctp/IllegalReceiveException.java ! src/share/classes/com/sun/nio/sctp/IllegalUnbindException.java ! src/share/classes/com/sun/nio/sctp/InvalidStreamException.java ! src/share/classes/com/sun/nio/sctp/MessageInfo.java ! src/share/classes/com/sun/nio/sctp/Notification.java ! src/share/classes/com/sun/nio/sctp/NotificationHandler.java ! src/share/classes/com/sun/nio/sctp/PeerAddressChangeNotification.java ! src/share/classes/com/sun/nio/sctp/SctpChannel.java ! src/share/classes/com/sun/nio/sctp/SctpMultiChannel.java ! src/share/classes/com/sun/nio/sctp/SctpServerChannel.java ! src/share/classes/com/sun/nio/sctp/SctpSocketOption.java ! src/share/classes/com/sun/nio/sctp/SctpStandardSocketOptions.java ! src/share/classes/com/sun/nio/sctp/SendFailedNotification.java ! src/share/classes/com/sun/nio/sctp/ShutdownNotification.java ! src/share/classes/com/sun/nio/sctp/package-info.java ! src/share/classes/com/sun/security/auth/LdapPrincipal.java ! src/share/classes/com/sun/security/auth/NTDomainPrincipal.java ! src/share/classes/com/sun/security/auth/NTNumericCredential.java ! src/share/classes/com/sun/security/auth/NTSid.java ! src/share/classes/com/sun/security/auth/NTSidDomainPrincipal.java ! src/share/classes/com/sun/security/auth/NTSidGroupPrincipal.java ! src/share/classes/com/sun/security/auth/NTSidPrimaryGroupPrincipal.java ! src/share/classes/com/sun/security/auth/NTSidUserPrincipal.java ! src/share/classes/com/sun/security/auth/NTUserPrincipal.java ! src/share/classes/com/sun/security/auth/PolicyFile.java ! src/share/classes/com/sun/security/auth/PrincipalComparator.java ! src/share/classes/com/sun/security/auth/SolarisNumericGroupPrincipal.java ! src/share/classes/com/sun/security/auth/SolarisNumericUserPrincipal.java ! src/share/classes/com/sun/security/auth/SolarisPrincipal.java ! src/share/classes/com/sun/security/auth/UnixNumericGroupPrincipal.java ! src/share/classes/com/sun/security/auth/UnixNumericUserPrincipal.java ! src/share/classes/com/sun/security/auth/UnixPrincipal.java ! src/share/classes/com/sun/security/auth/UserPrincipal.java ! src/share/classes/com/sun/security/auth/X500Principal.java ! src/share/classes/com/sun/security/auth/callback/DialogCallbackHandler.java ! src/share/classes/com/sun/security/auth/callback/TextCallbackHandler.java + src/share/classes/com/sun/security/auth/callback/package-info.java ! src/share/classes/com/sun/security/auth/login/ConfigFile.java + src/share/classes/com/sun/security/auth/login/package-info.java ! src/share/classes/com/sun/security/auth/module/JndiLoginModule.java ! src/share/classes/com/sun/security/auth/module/KeyStoreLoginModule.java ! src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java ! src/share/classes/com/sun/security/auth/module/LdapLoginModule.java ! src/share/classes/com/sun/security/auth/module/NTLoginModule.java ! src/share/classes/com/sun/security/auth/module/NTSystem.java ! src/share/classes/com/sun/security/auth/module/SolarisLoginModule.java ! src/share/classes/com/sun/security/auth/module/SolarisSystem.java ! src/share/classes/com/sun/security/auth/module/UnixLoginModule.java ! src/share/classes/com/sun/security/auth/module/UnixSystem.java + src/share/classes/com/sun/security/auth/module/package-info.java + src/share/classes/com/sun/security/auth/package-info.java ! src/share/classes/com/sun/security/jgss/AuthorizationDataEntry.java ! src/share/classes/com/sun/security/jgss/ExtendedGSSContext.java ! src/share/classes/com/sun/security/jgss/ExtendedGSSCredential.java ! src/share/classes/com/sun/security/jgss/GSSUtil.java ! src/share/classes/com/sun/security/jgss/InquireSecContextPermission.java ! src/share/classes/com/sun/security/jgss/InquireType.java + src/share/classes/com/sun/security/jgss/package-info.java ! src/share/classes/com/sun/tools/attach/AgentInitializationException.java ! src/share/classes/com/sun/tools/attach/AgentLoadException.java ! src/share/classes/com/sun/tools/attach/AttachNotSupportedException.java ! src/share/classes/com/sun/tools/attach/AttachPermission.java ! src/share/classes/com/sun/tools/attach/VirtualMachine.java ! src/share/classes/com/sun/tools/attach/VirtualMachineDescriptor.java + src/share/classes/com/sun/tools/attach/package-info.java - src/share/classes/com/sun/tools/attach/package.html ! src/share/classes/com/sun/tools/attach/spi/AttachProvider.java + src/share/classes/com/sun/tools/attach/spi/package-info.java - src/share/classes/com/sun/tools/attach/spi/package.html ! src/share/classes/com/sun/tools/jconsole/JConsoleContext.java ! src/share/classes/com/sun/tools/jconsole/JConsolePlugin.java + src/share/classes/com/sun/tools/jconsole/package-info.java - src/share/classes/com/sun/tools/jconsole/package.html ! src/solaris/classes/com/sun/management/OSMBeanFactory.java Changeset: 91a752e3d50b Author: vinnie Date: 2013-10-09 10:48 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/91a752e3d50b 8008171: Refactor KeyStore.DomainLoadStoreParameter as a standalone class Reviewed-by: mullan, weijun + src/share/classes/java/security/DomainLoadStoreParameter.java ! src/share/classes/java/security/KeyStore.java ! src/share/classes/sun/security/provider/DomainKeyStore.java ! test/sun/security/provider/KeyStore/DKSTest.java Changeset: 1cd20806fd5c Author: psandoz Date: 2013-10-09 15:19 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1cd20806fd5c 8020061: Clarify reporting characteristics between splits Reviewed-by: alanb, chegar ! src/share/classes/java/util/Spliterator.java Changeset: cf6e39cfdf50 Author: mchung Date: 2013-10-09 06:24 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cf6e39cfdf50 8026027: Level.parse should return the custom Level instance instead of the mirrored Level Reviewed-by: dfuchs, chegar ! src/share/classes/java/util/logging/Level.java + test/java/util/logging/Level/CustomLevel.java + test/java/util/logging/Level/myresource.properties Changeset: e3b70e601c1c Author: rriggs Date: 2013-10-09 11:02 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e3b70e601c1c 8024612: java/time/tck/java/time/format/TCKDateTimeFormatters.java failed Summary: The test should be using the Locale.Category.FORMAT to verify the test data Reviewed-by: lancea ! test/java/time/tck/java/time/format/TCKDateTimeFormatters.java Changeset: 09e2a73aa1dc Author: rriggs Date: 2013-09-26 15:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/09e2a73aa1dc 8025718: Enhance error messages for parsing Summary: Add values and types to exception messages Reviewed-by: lancea Contributed-by: scolebourne at joda.org ! src/share/classes/java/time/DayOfWeek.java ! src/share/classes/java/time/Instant.java ! src/share/classes/java/time/LocalDate.java ! src/share/classes/java/time/LocalDateTime.java ! src/share/classes/java/time/LocalTime.java ! src/share/classes/java/time/Month.java ! src/share/classes/java/time/MonthDay.java ! src/share/classes/java/time/OffsetDateTime.java ! src/share/classes/java/time/OffsetTime.java ! src/share/classes/java/time/Year.java ! src/share/classes/java/time/YearMonth.java ! src/share/classes/java/time/ZoneId.java ! src/share/classes/java/time/ZoneOffset.java ! src/share/classes/java/time/ZonedDateTime.java ! src/share/classes/java/time/format/Parsed.java ! test/java/time/test/java/time/format/TestDateTimeFormatter.java Changeset: c070001c4f60 Author: henryjen Date: 2013-10-09 09:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c070001c4f60 8023524: Mechanism to dump generated lambda classes / log lambda code generation Reviewed-by: plevart, mchung, forax, jjb Contributed-by: brian.goetz at oracle.com, henry.jen at oracle.com ! src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java + src/share/classes/java/lang/invoke/ProxyClassesDumper.java + test/java/lang/invoke/lambda/LogGeneratedClassesTest.java Changeset: d42fe440bda8 Author: rriggs Date: 2013-10-09 13:34 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d42fe440bda8 8024076: Incorrect 2 -> 4 year parsing and resolution in DateTimeFormatter Summary: Add appendValueReduced method based on a ChronoLocalDate to provide context for the value Reviewed-by: sherman Contributed-by: scolebourne at joda.org ! src/share/classes/java/time/format/DateTimeFormatterBuilder.java ! test/java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java ! test/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java ! test/java/time/test/java/time/format/TestReducedParser.java ! test/java/time/test/java/time/format/TestReducedPrinter.java Changeset: b86e6700266e Author: bpb Date: 2013-10-09 11:47 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b86e6700266e 8016252: More defensive HashSet.readObject Summary: Add data validation checks in readObject(). Reviewed-by: alanb, mduigou, chegar Contributed-by: Brian Burkhalter ! src/share/classes/java/util/HashSet.java + test/java/util/HashSet/Serialization.java Changeset: 1597066b58ee Author: valeriep Date: 2013-10-08 11:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1597066b58ee 7196382: PKCS11 provider should support 2048-bit DH Summary: Query and enforce range checking using the values from native PKCS11 library. Reviewed-by: xuelei ! src/share/classes/com/sun/crypto/provider/DHParameterGenerator.java ! src/share/classes/sun/security/pkcs11/P11KeyPairGenerator.java + test/sun/security/pkcs11/KeyPairGenerator/TestDH2048.java Changeset: 3da8be8d13bf Author: valeriep Date: 2013-10-08 11:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3da8be8d13bf 8012900: CICO ignores AAD in GCM mode Summary: Change GCM decryption to not return result until tag verification passed Reviewed-by: xuelei ! src/share/classes/com/sun/crypto/provider/CipherBlockChaining.java ! src/share/classes/com/sun/crypto/provider/CipherCore.java ! src/share/classes/com/sun/crypto/provider/CipherFeedback.java ! src/share/classes/com/sun/crypto/provider/CounterMode.java ! src/share/classes/com/sun/crypto/provider/ElectronicCodeBook.java ! src/share/classes/com/sun/crypto/provider/FeedbackCipher.java ! src/share/classes/com/sun/crypto/provider/GCTR.java ! src/share/classes/com/sun/crypto/provider/GaloisCounterMode.java ! src/share/classes/com/sun/crypto/provider/OutputFeedback.java ! src/share/classes/com/sun/crypto/provider/PCBC.java ! src/share/classes/javax/crypto/CipherSpi.java + test/com/sun/crypto/provider/Cipher/AES/TestCICOWithGCMAndAAD.java Changeset: f4305254f92f Author: valeriep Date: 2013-10-08 11:35 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f4305254f92f 8014374: Cannot initialize "AES/GCM/NoPadding" on wrap/unseal on solaris with OracleUcrypto Summary: Removed OracleUcrypto provider regression tests from OpenJDK Reviewed-by: xuelei - test/com/oracle/security/ucrypto/TestAES.java - test/com/oracle/security/ucrypto/TestDigest.java - test/com/oracle/security/ucrypto/TestRSA.java - test/com/oracle/security/ucrypto/UcryptoTest.java Changeset: e044b0151858 Author: valeriep Date: 2013-10-08 14:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e044b0151858 8025967: addition of -Werror broke the old build Summary: Fixed and suppressed compiler warnings on rawtypes Reviewed-by: vinnie ! src/share/classes/com/sun/jndi/ldap/LdapCtxFactory.java ! src/share/classes/com/sun/jndi/ldap/LdapPoolManager.java ! src/share/classes/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnectionOldImpl.java ! src/share/classes/java/lang/instrument/Instrumentation.java ! src/share/classes/java/net/ContentHandler.java ! src/share/classes/javax/crypto/JceSecurityManager.java ! src/share/classes/sun/instrument/InstrumentationImpl.java ! src/share/classes/sun/net/www/content/image/gif.java ! src/share/classes/sun/net/www/content/image/jpeg.java ! src/share/classes/sun/net/www/content/image/png.java ! src/share/classes/sun/net/www/content/image/x_xbitmap.java ! src/share/classes/sun/net/www/content/image/x_xpixmap.java ! src/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java ! src/share/classes/sun/reflect/misc/MethodUtil.java ! src/share/classes/sun/security/provider/AuthPolicyFile.java ! src/share/classes/sun/security/provider/SubjectCodeSource.java ! src/share/classes/sun/security/tools/jarsigner/Main.java ! src/share/classes/sun/security/tools/keytool/Main.java ! src/share/classes/sun/security/tools/policytool/PolicyTool.java Changeset: 7a7b73a40bb1 Author: valeriep Date: 2013-10-09 13:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7a7b73a40bb1 Merge - src/share/classes/com/sun/jdi/connect/package.html - src/share/classes/com/sun/jdi/connect/spi/package.html - src/share/classes/com/sun/jdi/event/package.html - src/share/classes/com/sun/jdi/package.html - src/share/classes/com/sun/jdi/request/package.html - src/share/classes/com/sun/management/package.html - src/share/classes/com/sun/tools/attach/package.html - src/share/classes/com/sun/tools/attach/spi/package.html - src/share/classes/com/sun/tools/jconsole/package.html Changeset: 673f8045311e Author: bpb Date: 2013-10-09 17:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/673f8045311e 7189139: BigInteger's staticRandom field can be a source of bottlenecks. Summary: Use ThreadLocalRandom instead of SecureRandom. Reviewed-by: shade, psandoz Contributed-by: Brian Burkhalter ! src/share/classes/java/math/BigInteger.java Changeset: eab3c09745b6 Author: bchristi Date: 2013-10-09 12:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/eab3c09745b6 8024709: TreeMap.DescendingKeyIterator 'remove' confuses iterator position Summary: Override remove() method in DescendingKeyIterator Reviewed-by: alanb, mduigou, psandoz ! src/share/classes/java/util/TreeMap.java ! test/java/util/Collection/MOAT.java Changeset: c13309f658e1 Author: darcy Date: 2013-10-09 18:31 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c13309f658e1 8024354: Explicitly permit DoubleStream.sum()/average() implementations to use higher precision summation Reviewed-by: mduigou, briangoetz ! src/share/classes/java/util/DoubleSummaryStatistics.java ! src/share/classes/java/util/stream/DoubleStream.java Changeset: e901a618dcff Author: sjiang Date: 2013-10-10 08:37 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e901a618dcff 8025207: Intermittent test failure: javax/management/monitor/CounterMonitorThresholdTest.java Reviewed-by: dfuchs, dholmes ! test/javax/management/monitor/CounterMonitorThresholdTest.java Changeset: e8097e1e18a7 Author: sjiang Date: 2013-10-10 08:49 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e8097e1e18a7 8025206: Intermittent test failure: javax/management/monitor/NullAttributeValueTest.java Reviewed-by: dholmes, dfuchs, jbachorik ! test/javax/management/monitor/NullAttributeValueTest.java Changeset: a30f6fd581b3 Author: sjiang Date: 2013-10-10 09:01 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a30f6fd581b3 8025205: Intermittent test failure: javax/management/remote/mandatory/connection/BrokenConnectionTest.java Reviewed-by: dholmes, dfuchs, jbachorik ! test/javax/management/remote/mandatory/connection/BrokenConnectionTest.java Changeset: 74b4d20769fd Author: weijun Date: 2013-10-10 15:24 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/74b4d20769fd 8026235: keytool NSS test should use 64 bit lib on Solaris Reviewed-by: vinnie ! test/sun/security/tools/keytool/autotest.sh Changeset: 6aa637dde16e Author: sla Date: 2013-10-10 09:38 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6aa637dde16e 8025427: jstat tests fails on 32-bit platforms Reviewed-by: ehelin, dsamersoff, dholmes, sspitsyn ! src/share/classes/sun/tools/jstat/RowClosure.java ! test/ProblemList.txt ! test/sun/tools/jstat/gcCauseOutput1.awk ! test/sun/tools/jstat/lineCounts1.awk ! test/sun/tools/jstat/lineCounts2.awk ! test/sun/tools/jstat/lineCounts3.awk ! test/sun/tools/jstat/lineCounts4.awk ! test/sun/tools/jstat/timeStamp1.awk ! test/sun/tools/jstatd/jstatGcutilOutput1.awk Changeset: 998560cccefc Author: allwin Date: 2013-10-10 10:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/998560cccefc 8014446: JT_JDK: Wrong detection of test result for test com/sun/jdi/NoLaunchOptionTest.java Reviewed-by: sla, mgronlun, dholmes, jbachorik, chegar ! test/com/sun/jdi/NoLaunchOptionTest.java Changeset: 254173b48dcb Author: dholmes Date: 2013-10-10 04:57 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/254173b48dcb 8026232: Move libnpt from profile compact1 to compact3 Reviewed-by: mchung, alanb ! makefiles/profile-includes.txt Changeset: 99b7bbe0474f Author: dl Date: 2013-10-10 09:57 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/99b7bbe0474f 7011859: java/util/concurrent/Semaphore/RacingReleases.java failing Reviewed-by: alanb, dholmes ! src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java ! src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java Changeset: 8294c49d23b3 Author: michaelm Date: 2013-10-10 12:36 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8294c49d23b3 7076487: (sctp) SCTP API classes does not exist in JDK for Mac Reviewed-by: alanb, chegar ! makefiles/CompileJavaClasses.gmk ! makefiles/CreateJars.gmk + src/macosx/classes/sun/nio/ch/sctp/SctpChannelImpl.java + src/macosx/classes/sun/nio/ch/sctp/SctpMultiChannelImpl.java + src/macosx/classes/sun/nio/ch/sctp/SctpServerChannelImpl.java Changeset: cab80088c671 Author: sjiang Date: 2013-10-10 17:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cab80088c671 8025204: Intermittent test failure: javax/management/remote/mandatory/connection/IdleTimeoutTest.java Reviewed-by: dholmes, jbachorik ! test/javax/management/remote/mandatory/connection/IdleTimeoutTest.java Changeset: f25d9d8811ca Author: jfranck Date: 2013-10-10 18:11 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f25d9d8811ca 7044282: (reflect) Class.forName and Array.newInstance are inconsistent regarding multidimensional arrays Reviewed-by: darcy, psandoz ! src/share/classes/java/lang/reflect/Array.java + test/java/lang/Class/forName/arrayClass/Class1.java + test/java/lang/Class/forName/arrayClass/Class2.java + test/java/lang/Class/forName/arrayClass/Class3.java + test/java/lang/Class/forName/arrayClass/Class4.java + test/java/lang/Class/forName/arrayClass/ExceedMaxDim.java ! test/java/lang/reflect/Array/ExceedMaxDim.java Changeset: 4abfcbac1cb6 Author: emc Date: 2013-10-10 18:56 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4abfcbac1cb6 8026011: java.lang.reflect.MalformedParametersException introduces doclint warnings Summary: Add javadoc comments to members of MalformedParametersException Reviewed-by: darcy ! src/share/classes/java/lang/reflect/MalformedParametersException.java Changeset: a1d91e198ddf Author: lana Date: 2013-10-10 13:33 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a1d91e198ddf Merge ! makefiles/CompileJavaClasses.gmk ! makefiles/CreateJars.gmk - src/macosx/classes/sun/lwawt/SelectionClearListener.java - src/macosx/classes/sun/lwawt/macosx/CMouseInfoPeer.java - test/com/sun/jdi/Solaris32AndSolaris64Test.sh - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so ! test/sun/security/tools/keytool/autotest.sh Changeset: 1863a7e3a1c9 Author: lana Date: 2013-10-10 20:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1863a7e3a1c9 Merge Changeset: 7af04d2d2139 Author: cl Date: 2013-10-10 10:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7af04d2d2139 Added tag jdk8-b111 for changeset 719befd87c7b ! .hgtags Changeset: 1a067bc31098 Author: lana Date: 2013-10-10 21:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1a067bc31098 Merge Changeset: 4ad76262bac8 Author: mullan Date: 2013-10-11 08:43 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4ad76262bac8 8007292: Add JavaFX internal packages to package.access Summary: build hooks to allow closed restricted packages to be added to java.security file Reviewed-by: erikj, dholmes, tbell ! make/java/security/Makefile ! make/tools/Makefile + make/tools/addtorestrictedpkgs/Makefile + make/tools/src/build/tools/addtorestrictedpkgs/AddToRestrictedPkgs.java ! makefiles/CopyFiles.gmk ! makefiles/Tools.gmk ! test/java/lang/SecurityManager/CheckPackageAccess.java Changeset: 76df579c0b93 Author: mullan Date: 2013-10-11 09:17 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/76df579c0b93 Merge ! makefiles/Tools.gmk - src/macosx/classes/sun/lwawt/SelectionClearListener.java - src/macosx/classes/sun/lwawt/macosx/CMouseInfoPeer.java - src/share/classes/com/sun/jdi/connect/package.html - src/share/classes/com/sun/jdi/connect/spi/package.html - src/share/classes/com/sun/jdi/event/package.html - src/share/classes/com/sun/jdi/package.html - src/share/classes/com/sun/jdi/request/package.html - src/share/classes/com/sun/management/package.html - src/share/classes/com/sun/tools/attach/package.html - src/share/classes/com/sun/tools/attach/spi/package.html - src/share/classes/com/sun/tools/jconsole/package.html - src/share/classes/java/lang/invoke/InvokeGeneric.java - src/share/classes/java/time/chrono/ChronoDateImpl.java - test/com/oracle/security/ucrypto/TestAES.java - test/com/oracle/security/ucrypto/TestDigest.java - test/com/oracle/security/ucrypto/TestRSA.java - test/com/oracle/security/ucrypto/UcryptoTest.java - test/com/sun/jdi/Solaris32AndSolaris64Test.sh - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so - test/java/time/tck/java/time/chrono/TCKChronologySerialization.java Changeset: cb373cf43294 Author: dxu Date: 2013-10-11 09:47 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cb373cf43294 8025712: (props) Possible memory leak in java_props_md.c / ParseLocale Reviewed-by: naoto, chegar ! src/solaris/native/java/lang/java_props_md.c Changeset: d23247aa7462 Author: vinnie Date: 2013-10-11 20:35 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d23247aa7462 8026301: DomainKeyStore doesn't cleanup correctly when storing to keystore Reviewed-by: mullan ! src/share/classes/sun/security/provider/DomainKeyStore.java Changeset: 94493b5800bb Author: vinnie Date: 2013-10-11 20:47 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/94493b5800bb Merge Changeset: 9632de07d963 Author: alanb Date: 2013-10-11 20:47 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9632de07d963 8019526: (fs) Files.lines, etc without Charset parameter Reviewed-by: psandoz, henryjen ! src/share/classes/java/nio/file/Files.java ! test/java/nio/file/Files/BytesAndLines.java ! test/java/nio/file/Files/StreamTest.java Changeset: 4561460bf570 Author: rfield Date: 2013-10-11 15:21 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4561460bf570 8026213: Reflection support for private interface methods Reviewed-by: forax, psandoz, dholmes, jfranck Contributed-by: karen.kinnear at oracle.com ! src/share/classes/sun/reflect/AccessorGenerator.java ! src/share/classes/sun/reflect/MethodAccessorGenerator.java + test/java/lang/reflect/Method/invoke/TestPrivateInterfaceMethodReflect.java Changeset: fb202a8e83c9 Author: xuelei Date: 2013-10-13 21:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fb202a8e83c9 8026119: Regression test DHEKeySizing.java failing intermittently Reviewed-by: weijun ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/DHKeyExchange/DHEKeySizing.java Changeset: 9f8bfdd99129 Author: dfuchs Date: 2013-10-14 10:42 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9f8bfdd99129 8024704: Improve API documentation of ClassLoader and ServiceLoader with respect to enumeration of resources. Reviewed-by: alanb, psandoz, mchung ! src/share/classes/java/lang/ClassLoader.java ! src/share/classes/java/util/ServiceLoader.java Changeset: 077237e4613f Author: tyan Date: 2013-10-14 11:47 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/077237e4613f 8023555: test/java/net/Socks/SocksProxyVersion.java fails when machine name is localhost Reviewed-by: chegar, alanb ! test/java/net/Socks/SocksProxyVersion.java Changeset: f15a0087181e Author: stefank Date: 2013-10-14 14:28 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f15a0087181e 7196801: NPG: Fix java/lang/management/MemoryMXBean/LowMemoryTest2 Reviewed-by: coleenp, sla Contributed-by: stefan.karlsson at oracle.com, coleen.phillimore at oracle.com ! test/java/lang/management/MemoryMXBean/LowMemoryTest2.java ! test/java/lang/management/MemoryMXBean/LowMemoryTest2.sh Changeset: 8a041011b6e6 Author: jgodinez Date: 2013-09-27 13:04 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8a041011b6e6 6870661: Setting a custom PrintService on a PrinterJob leads to a PrinterException Reviewed-by: prr, jgodinez Contributed-by: patrick at reini.net ! src/windows/classes/sun/awt/windows/WPrinterJob.java + test/java/awt/print/PrinterJob/CustomPrintService/PrintDialog.java + test/java/awt/print/PrinterJob/CustomPrintService/PrintServiceStub.java + test/java/awt/print/PrinterJob/CustomPrintService/SetPrintServiceTest.java Changeset: 31b8d4931a09 Author: prr Date: 2013-09-27 13:06 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/31b8d4931a09 8020190: Fatal: Bug in native code: jfieldID must match object Reviewed-by: jgodinez, vadim ! src/share/classes/sun/font/FreetypeFontScaler.java ! src/share/native/sun/font/freetypeScaler.c Changeset: 6ef33b4553a4 Author: vadim Date: 2013-09-30 12:50 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6ef33b4553a4 8001119: [fingbugs] Evaluate necessity to make some arrays package protected Reviewed-by: prr, bae + src/share/classes/com/sun/imageio/plugins/bmp/BMPCompressionTypes.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPConstants.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java ! src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java ! src/share/classes/com/sun/imageio/plugins/gif/GIFStreamMetadata.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEG.java ! src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java ! src/share/classes/javax/imageio/plugins/bmp/BMPImageWriteParam.java Changeset: e2604b873b36 Author: prr Date: 2013-10-01 15:36 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e2604b873b36 8007386: On physical machine (video card is Intel Q45) the text is blank. Reviewed-by: prr, jchen ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java ! src/solaris/native/sun/java2d/x11/XRBackendNative.c Changeset: 96ff585555f4 Author: vadim Date: 2013-10-02 10:06 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/96ff585555f4 8024343: Change different color with the "The XOR alternation color" combobox, the color of the image can not shown immediately. Reviewed-by: ceisserer, prr, bae ! src/solaris/classes/sun/java2d/xr/XRSurfaceData.java + test/sun/java2d/AcceleratedXORModeTest.java Changeset: 5f3d984d8207 Author: prr Date: 2013-10-02 11:16 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5f3d984d8207 8025837: Extraneous changes in the fix for 8007386 Reviewed-by: jgodinez, jchen ! src/solaris/native/sun/java2d/x11/XRBackendNative.c Changeset: f53aeb3c7eed Author: prr Date: 2013-10-02 11:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f53aeb3c7eed 7179526: xrender : closed/sun/java2d/volatileImage/LineClipTest.java failed since jdk8b36 Reviewed-by: prr, jchen ! src/solaris/classes/sun/java2d/xr/GrowableRectArray.java ! src/solaris/classes/sun/java2d/xr/MaskTile.java ! src/solaris/classes/sun/java2d/xr/MaskTileManager.java + src/solaris/classes/sun/java2d/xr/XRDrawLine.java ! src/solaris/classes/sun/java2d/xr/XRRenderer.java + test/java/awt/Graphics/LineClipTest.java Changeset: a15cad0e12d3 Author: bae Date: 2013-10-03 11:28 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a15cad0e12d3 8022632: Reading a PNG file fails because of WBMPImageReaderSpi.canDecodeInput() Reviewed-by: prr, jgodinez ! src/share/classes/com/sun/imageio/plugins/wbmp/WBMPImageReaderSpi.java + test/javax/imageio/plugins/wbmp/StreamResetTest.java Changeset: 2f11a00279ec Author: jchen Date: 2013-10-03 13:16 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2f11a00279ec 8025280: [parfait] warnings from b107 for jdk.src.share.native.sun.java2d.loops: JNI exception pending, JNI critical region violation Reviewed-by: prr, jgodinez ! src/share/native/sun/java2d/loops/Blit.c ! src/share/native/sun/java2d/loops/BlitBg.c ! src/share/native/sun/java2d/loops/DrawPath.c ! src/share/native/sun/java2d/loops/DrawPolygons.c ! src/share/native/sun/java2d/loops/FillPath.c ! src/share/native/sun/java2d/loops/GraphicsPrimitiveMgr.c ! src/share/native/sun/java2d/loops/MaskBlit.c ! src/share/native/sun/java2d/loops/MaskFill.c ! src/share/native/sun/java2d/loops/ScaledBlit.c ! src/share/native/sun/java2d/loops/TransformHelper.c Changeset: e88d39b110dd Author: jchen Date: 2013-10-03 13:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e88d39b110dd 8025480: [parfait] "JNI exception pending" warnings from b107 for jdk.src.share.native.sun.java2d Reviewed-by: prr, jgodinez ! src/share/native/sun/java2d/Disposer.c ! src/share/native/sun/java2d/SurfaceData.c Changeset: 3c1b13ad0677 Author: jchen Date: 2013-10-03 13:35 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3c1b13ad0677 8025309: [parfait] JNI-related warnings from b107 for jdk.src.share.native.sun.java2d.pipe Reviewed-by: prr, jgodinez ! src/share/native/sun/java2d/pipe/BufferedRenderPipe.c ! src/share/native/sun/java2d/pipe/Region.c ! src/share/native/sun/java2d/pipe/ShapeSpanIterator.c ! src/share/native/sun/java2d/pipe/SpanClipRenderer.c Changeset: d37594b689ce Author: jchen Date: 2013-10-03 13:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d37594b689ce 8025664: [parfait] warnings from b62 for jdk.src.share.native.sun.font Reviewed-by: prr, jgodinez ! src/share/native/sun/font/freetypeScaler.c Changeset: 0ed939dc4230 Author: jchen Date: 2013-10-03 13:49 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0ed939dc4230 8025294: [parfait] JNI-related warnings from b107 for jdk.src.solaris.native.sun.java2d.x11 Reviewed-by: prr, jgodinez ! src/solaris/native/sun/java2d/x11/X11Renderer.c ! src/solaris/native/sun/java2d/x11/X11SurfaceData.c ! src/solaris/native/sun/java2d/x11/XRBackendNative.c ! src/solaris/native/sun/java2d/x11/XRSurfaceData.c Changeset: 8fd757f31470 Author: jchen Date: 2013-10-04 16:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8fd757f31470 8025940: Windows build fails after the fix for 8025280 Reviewed-by: prr, jgodinez ! src/share/native/sun/java2d/loops/MaskBlit.c Changeset: 727b60f9c09c Author: lana Date: 2013-10-08 14:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/727b60f9c09c Merge Changeset: e4e151f6ae50 Author: yan Date: 2013-09-27 12:35 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e4e151f6ae50 8025249: [javadoc] fix some javadoc errors in javax/swing/ Reviewed-by: alexsch, yan Contributed-by: Taras Ledkov ! src/share/classes/javax/swing/border/CompoundBorder.java ! src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java ! src/share/classes/javax/swing/event/CaretEvent.java ! src/share/classes/javax/swing/event/DocumentEvent.java ! src/share/classes/javax/swing/event/EventListenerList.java ! src/share/classes/javax/swing/event/ListDataEvent.java ! src/share/classes/javax/swing/event/TreeModelEvent.java ! src/share/classes/javax/swing/filechooser/FileView.java ! src/share/classes/javax/swing/table/DefaultTableCellRenderer.java ! src/share/classes/javax/swing/table/DefaultTableModel.java ! src/share/classes/javax/swing/table/JTableHeader.java ! src/share/classes/javax/swing/table/TableCellRenderer.java ! src/share/classes/javax/swing/text/AbstractDocument.java ! src/share/classes/javax/swing/text/AbstractWriter.java ! src/share/classes/javax/swing/text/AsyncBoxView.java ! src/share/classes/javax/swing/text/AttributeSet.java ! src/share/classes/javax/swing/text/Document.java ! src/share/classes/javax/swing/text/Element.java ! src/share/classes/javax/swing/text/View.java Changeset: ca45169cb4eb Author: pchelko Date: 2013-09-27 14:29 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ca45169cb4eb 8024122: [TEST] need test to cover JDK-7146572 Reviewed-by: anthony, yan Contributed-by: Alexander Stepanov + test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.html + test/java/awt/InputMethods/InputMethodsTest/InputMethodsTest.java Changeset: ad7db846c951 Author: pchelko Date: 2013-09-27 17:04 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ad7db846c951 8025503: [macosx] FileDialog allows file selection with apple.awt.fileDialogForDirectories = true Reviewed-by: serb, anthony ! src/macosx/native/sun/awt/CFileDialog.m Changeset: 260bc59ca253 Author: pchelko Date: 2013-09-27 18:35 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/260bc59ca253 8016563: Test closed/java/awt/dnd/ImageTransferTest/ImageTransferTest.html fails Reviewed-by: anthony, serb ! src/share/classes/sun/awt/datatransfer/DataTransferer.java Changeset: bfff9e9120ec Author: malenkov Date: 2013-09-27 22:17 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bfff9e9120ec 8012716: java.beans.EventHandler.create method should check if the given listenerInterface is a public interface Reviewed-by: art, mchung ! src/share/classes/java/beans/EventHandler.java Changeset: 0042f54f65d0 Author: malenkov Date: 2013-09-27 22:25 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0042f54f65d0 7117595: ArrayIndexOutOfBoundsException in Win32GraphicsEnvironment if display is removed Reviewed-by: anthony, serb ! src/macosx/classes/sun/awt/CGraphicsEnvironment.java ! src/share/classes/sun/java2d/SunGraphicsEnvironment.java ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java ! src/windows/classes/sun/awt/Win32GraphicsEnvironment.java Changeset: 603cd3cefbb0 Author: malenkov Date: 2013-09-30 22:08 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/603cd3cefbb0 8025652: [macos] build failed Reviewed-by: serb ! src/share/classes/sun/java2d/SunGraphicsEnvironment.java ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java ! src/windows/classes/sun/awt/Win32GraphicsEnvironment.java Changeset: cdfa2301a291 Author: serb Date: 2013-10-01 04:29 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cdfa2301a291 7150100: [macosx] "0123456789" is selected in the TextField Reviewed-by: anthony, art ! src/macosx/classes/sun/lwawt/LWTextComponentPeer.java ! src/solaris/classes/sun/awt/X11/XTextAreaPeer.java ! src/solaris/classes/sun/awt/X11/XTextFieldPeer.java + test/java/awt/TextArea/SelectionVisible/SelectionVisible.html + test/java/awt/TextArea/SelectionVisible/SelectionVisible.java + test/java/awt/TextField/SelectionVisible/SelectionVisible.html + test/java/awt/TextField/SelectionVisible/SelectionVisible.java Changeset: 2d8418d68a3c Author: kshefov Date: 2013-10-01 13:19 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2d8418d68a3c 7125471: [macosx] NofocusListDblClickTest should wait between doublr clicks Reviewed-by: anthony, serb Contributed-by: vera.akulova at oracle.com + test/java/awt/List/NofocusListDblClickTest/NofocusListDblClickTest.java Changeset: 329011aad090 Author: kshefov Date: 2013-10-01 13:30 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/329011aad090 8012468: [TEST_BUG] javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java doesn't release mouse button Reviewed-by: serb, alexsch Contributed-by: vera.akulova at oracle.com ! test/javax/swing/PopupFactory/6276087/NonOpaquePopupMenuTest.java Changeset: 0887aad989fb Author: kshefov Date: 2013-10-01 13:38 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0887aad989fb 8012466: [TEST_BUG] javax/swing/JInternalFrame/Test6505027.java doesn't release mouse button Reviewed-by: serb, alexsch Contributed-by: vera.akulova at oracle.com ! test/javax/swing/JInternalFrame/Test6505027.java Changeset: 1043bd1f7fca Author: kshefov Date: 2013-10-01 13:40 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1043bd1f7fca 8004294: [TEST_BUG] javax/swing/JSpinner/4973721/bug4973721.java failed on win2003 Reviewed-by: serb, alexsch Contributed-by: vera.akulova at oracle.com + test/javax/swing/JSpinner/4973721/bug4973721.java Changeset: 68157255f3eb Author: kshefov Date: 2013-10-01 13:45 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/68157255f3eb 8012461: [TEST_BUG] closed/javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java doesn't release mouse button Reviewed-by: serb, alexsch Contributed-by: vera.akulova at oracle.com + test/javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.java + test/javax/swing/plaf/synth/SynthButtonUI/6276188/bug6276188.xml Changeset: 172405287fde Author: kshefov Date: 2013-10-01 13:46 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/172405287fde 7133545: [macosx] closed/javax/swing/JSplitPane/4514858/bug4514858.java fails on MacOS Reviewed-by: serb, alexsch Contributed-by: vera.akulova at oracle.com + test/javax/swing/JSplitPane/4514858/bug4514858.java Changeset: 291e66f4cb83 Author: kshefov Date: 2013-10-01 13:47 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/291e66f4cb83 7133532: [macosx] closed/javax/swing/JScrollBar/bug4202954/bug4202954.java fails on MacOS Reviewed-by: serb, alexsch Contributed-by: vera.akulova at oracle.com + test/javax/swing/JScrollBar/bug4202954/bug4202954.java Changeset: 560ede42bd2e Author: kshefov Date: 2013-10-01 14:38 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/560ede42bd2e 8025707: Frogot to add a file to fix for JDK-8012461 Reviewed-by: serb, alexsch Contributed-by: vera.akulova at oracle.com + test/javax/swing/plaf/synth/SynthButtonUI/6276188/red.gif Changeset: a0c28e64c049 Author: alitvinov Date: 2013-10-01 18:40 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a0c28e64c049 8025145: [macosx]: java 7 does not recognize tiff image on clipboard Reviewed-by: anthony, serb Contributed-by: anton.nashatyrev at oracle.com ! src/macosx/lib/flavormap.properties Changeset: 5e205645d990 Author: pchelko Date: 2013-10-02 11:18 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5e205645d990 7124363: [macosx] ClassCastException: CFileDialog cannot be cast to LWWindowPeer Reviewed-by: anthony, serb ! src/macosx/classes/sun/lwawt/LWWindowPeer.java Changeset: 1189f954d52f Author: pchelko Date: 2013-10-02 11:32 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1189f954d52f 8024163: [macosx] NullPointerException at javax.swing.TransferHandler$DropHandler.handleDrag since jdk8b93, 7u40b28 Reviewed-by: anthony, serb ! src/macosx/classes/sun/lwawt/macosx/CDropTargetContextPeer.java ! src/macosx/native/sun/awt/CDropTarget.m + test/java/awt/dnd/DropTargetEnterExitTest/ExtraDragEnterTest.java + test/java/awt/dnd/DropTargetEnterExitTest/MissedDragExitTest.java Changeset: 01198c681710 Author: pchelko Date: 2013-10-02 11:50 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/01198c681710 8024600: [macosx] code prevents use of -Xlint:auxiliaryclass,empty in jdk build Reviewed-by: anthony, serb ! src/macosx/classes/com/apple/eawt/_AppEventLegacyHandler.java + src/macosx/classes/com/apple/eawt/_OpenAppHandler.java ! src/macosx/classes/com/apple/laf/AquaComboBoxRenderer.java + src/macosx/classes/com/apple/laf/AquaComboBoxRendererInternal.java ! src/macosx/classes/com/apple/laf/AquaMenuBarUI.java Changeset: 287e0a7731ff Author: pchelko Date: 2013-10-02 16:58 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/287e0a7731ff 8024158: [macosx] java/awt/EventDispatchThread/LoopRobustness/LoopRobustness still failed after fix JDK-8022247; since jdk8b96 Reviewed-by: art, leonidr ! src/macosx/classes/sun/lwawt/LWWindowPeer.java Changeset: 244f2ee51f31 Author: leonidr Date: 2013-10-02 17:06 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/244f2ee51f31 8023994: Right click on the icon added to the system tray for the first time, java.lang.IllegalArgumentException thrown. Reviewed-by: anthony, serb ! src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java Changeset: f40f2421c60f Author: serb Date: 2013-10-02 21:02 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f40f2421c60f 8013563: Memory leak in JFrame on Linux Reviewed-by: anthony, art ! src/share/classes/java/awt/Window.java + test/java/awt/Window/WindowsLeak/WindowsLeak.java Changeset: 1da5d306e84b Author: cl Date: 2013-10-02 11:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1da5d306e84b 8025409: Fix javadoc comments errors and warning reported by doclint report Reviewed-by: anthony, yan ! src/share/classes/java/awt/BorderLayout.java ! src/share/classes/java/awt/Button.java ! src/share/classes/java/awt/Checkbox.java ! src/share/classes/java/awt/CheckboxGroup.java ! src/share/classes/java/awt/CheckboxMenuItem.java ! src/share/classes/java/awt/Choice.java ! src/share/classes/java/awt/Color.java ! src/share/classes/java/awt/EventQueue.java ! src/share/classes/java/awt/FlowLayout.java ! src/share/classes/java/awt/FontMetrics.java ! src/share/classes/java/awt/Frame.java ! src/share/classes/java/awt/GridBagLayout.java ! src/share/classes/java/awt/GridLayout.java ! src/share/classes/java/awt/Label.java ! src/share/classes/java/awt/LinearGradientPaint.java ! src/share/classes/java/awt/List.java ! src/share/classes/java/awt/MenuBar.java ! src/share/classes/java/awt/MenuItem.java ! src/share/classes/java/awt/RadialGradientPaint.java ! src/share/classes/java/awt/Scrollbar.java ! src/share/classes/java/awt/SystemTray.java ! src/share/classes/java/awt/TextArea.java ! src/share/classes/java/awt/TextField.java ! src/share/classes/java/awt/Window.java ! src/share/classes/java/awt/font/TextAttribute.java ! src/share/classes/java/awt/geom/AffineTransform.java ! src/share/classes/java/awt/geom/Line2D.java ! src/share/classes/java/awt/print/PrinterJob.java ! src/share/classes/javax/print/Doc.java ! src/share/classes/javax/print/DocFlavor.java ! src/share/classes/javax/print/MultiDoc.java ! src/share/classes/javax/print/attribute/standard/Finishings.java ! src/share/classes/javax/print/attribute/standard/JobStateReasons.java ! src/share/classes/javax/print/attribute/standard/MediaPrintableArea.java ! src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java ! src/share/classes/javax/print/attribute/standard/PrinterStateReasons.java ! src/share/classes/javax/print/attribute/standard/Sides.java ! src/share/classes/javax/swing/JLayeredPane.java ! src/share/classes/javax/swing/JOptionPane.java ! src/share/classes/javax/swing/JScrollPane.java ! src/share/classes/javax/swing/JTabbedPane.java ! src/share/classes/javax/swing/LookAndFeel.java ! src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java ! src/share/classes/javax/swing/plaf/metal/MetalTreeUI.java ! src/share/classes/javax/swing/text/Document.java ! src/share/classes/javax/swing/text/MaskFormatter.java ! src/share/classes/javax/swing/text/View.java ! src/share/classes/javax/swing/text/html/HTMLDocument.java Changeset: 998578a87c0e Author: bagiras Date: 2013-10-03 16:51 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/998578a87c0e 8013553: [macosx] java.awt.FileDialog removes file extensions Reviewed-by: leonidr, serb ! src/macosx/native/sun/awt/CFileDialog.m Changeset: 1533a379deb0 Author: anthony Date: 2013-10-03 18:01 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1533a379deb0 7174704: [macosx] New issue in 7u6 b12: HeadlessPrintingTest failure Summary: Load the lwawt native library on Mac regardless of the headless/headful mode. Also, some minor cleanup. Reviewed-by: art, serb ! src/macosx/native/sun/awt/awt.m ! src/solaris/native/sun/awt/awt_LoadLibrary.c Changeset: 39b674405270 Author: alexsch Date: 2013-10-03 19:02 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/39b674405270 7092283: Property Window.locationByPlatform is not cleared by calling setVisible(false) Reviewed-by: anthony, serb ! src/share/classes/java/awt/Window.java + test/java/awt/Window/LocationByPlatform/LocationByPlatformTest.java Changeset: 6ffe50fe06bd Author: mcherkas Date: 2013-10-04 20:13 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6ffe50fe06bd 8020688: Broken links in documentation at http://docs.oracle.com/javase/6/docs/api/index. Reviewed-by: anthony, alexsch ! src/macosx/classes/apple/applescript/AppleScriptEngine.java ! src/share/classes/com/sun/org/apache/xml/internal/security/keys/content/x509/XMLX509SKI.java ! src/share/classes/com/sun/org/apache/xml/internal/security/utils/resolver/implementations/ResolverDirectHTTP.java ! src/share/classes/java/applet/Applet.java ! src/share/classes/java/applet/AppletStub.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java ! src/share/classes/java/awt/DefaultFocusTraversalPolicy.java ! src/share/classes/java/awt/DefaultKeyboardFocusManager.java ! src/share/classes/java/awt/DisplayMode.java ! src/share/classes/java/awt/FocusTraversalPolicy.java ! src/share/classes/java/awt/Font.java ! src/share/classes/java/awt/GraphicsDevice.java ! src/share/classes/java/awt/KeyboardFocusManager.java ! src/share/classes/java/awt/Toolkit.java ! src/share/classes/java/awt/datatransfer/DataFlavor.java ! src/share/classes/java/awt/datatransfer/Transferable.java ! src/share/classes/java/awt/event/ActionEvent.java ! src/share/classes/java/awt/event/ActionListener.java ! src/share/classes/java/awt/event/ComponentAdapter.java ! src/share/classes/java/awt/event/ComponentEvent.java ! src/share/classes/java/awt/event/ComponentListener.java ! src/share/classes/java/awt/event/ContainerAdapter.java ! src/share/classes/java/awt/event/ContainerEvent.java ! src/share/classes/java/awt/event/ContainerListener.java ! src/share/classes/java/awt/event/FocusAdapter.java ! src/share/classes/java/awt/event/FocusEvent.java ! src/share/classes/java/awt/event/FocusListener.java ! src/share/classes/java/awt/event/ItemEvent.java ! src/share/classes/java/awt/event/ItemListener.java ! src/share/classes/java/awt/event/KeyAdapter.java ! src/share/classes/java/awt/event/KeyEvent.java ! src/share/classes/java/awt/event/MouseAdapter.java ! src/share/classes/java/awt/event/MouseEvent.java ! src/share/classes/java/awt/event/MouseListener.java ! src/share/classes/java/awt/event/MouseMotionAdapter.java ! src/share/classes/java/awt/event/MouseMotionListener.java ! src/share/classes/java/awt/event/WindowAdapter.java ! src/share/classes/java/awt/event/WindowEvent.java ! src/share/classes/java/awt/event/WindowFocusListener.java ! src/share/classes/java/awt/event/WindowListener.java ! src/share/classes/java/awt/geom/Line2D.java ! src/share/classes/java/beans/Introspector.java ! src/share/classes/java/net/URI.java ! src/share/classes/java/text/DecimalFormat.java ! src/share/classes/java/text/SimpleDateFormat.java ! src/share/classes/javax/management/Descriptor.java ! src/share/classes/javax/swing/AbstractButton.java ! src/share/classes/javax/swing/BorderFactory.java ! src/share/classes/javax/swing/BoundedRangeModel.java ! src/share/classes/javax/swing/Box.java ! src/share/classes/javax/swing/BoxLayout.java ! src/share/classes/javax/swing/ButtonGroup.java ! src/share/classes/javax/swing/DefaultFocusManager.java ! src/share/classes/javax/swing/FocusManager.java ! src/share/classes/javax/swing/ImageIcon.java ! src/share/classes/javax/swing/JApplet.java ! src/share/classes/javax/swing/JButton.java ! src/share/classes/javax/swing/JCheckBox.java ! src/share/classes/javax/swing/JCheckBoxMenuItem.java ! src/share/classes/javax/swing/JColorChooser.java ! src/share/classes/javax/swing/JComboBox.java ! src/share/classes/javax/swing/JComponent.java ! src/share/classes/javax/swing/JDesktopPane.java ! src/share/classes/javax/swing/JDialog.java ! src/share/classes/javax/swing/JEditorPane.java ! src/share/classes/javax/swing/JFileChooser.java ! src/share/classes/javax/swing/JFrame.java ! src/share/classes/javax/swing/JInternalFrame.java ! src/share/classes/javax/swing/JLabel.java ! src/share/classes/javax/swing/JLayeredPane.java ! src/share/classes/javax/swing/JList.java ! src/share/classes/javax/swing/JMenu.java ! src/share/classes/javax/swing/JMenuBar.java ! src/share/classes/javax/swing/JMenuItem.java ! src/share/classes/javax/swing/JOptionPane.java ! src/share/classes/javax/swing/JPanel.java ! src/share/classes/javax/swing/JPasswordField.java ! src/share/classes/javax/swing/JPopupMenu.java ! src/share/classes/javax/swing/JProgressBar.java ! src/share/classes/javax/swing/JRadioButton.java ! src/share/classes/javax/swing/JRadioButtonMenuItem.java ! src/share/classes/javax/swing/JRootPane.java ! src/share/classes/javax/swing/JScrollPane.java ! src/share/classes/javax/swing/JSeparator.java ! src/share/classes/javax/swing/JSlider.java ! src/share/classes/javax/swing/JSpinner.java ! src/share/classes/javax/swing/JSplitPane.java ! src/share/classes/javax/swing/JTabbedPane.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/JTextArea.java ! src/share/classes/javax/swing/JTextField.java ! src/share/classes/javax/swing/JTextPane.java ! src/share/classes/javax/swing/JToggleButton.java ! src/share/classes/javax/swing/JToolBar.java ! src/share/classes/javax/swing/JToolTip.java ! src/share/classes/javax/swing/JTree.java ! src/share/classes/javax/swing/JWindow.java ! src/share/classes/javax/swing/ProgressMonitor.java ! src/share/classes/javax/swing/ProgressMonitorInputStream.java ! src/share/classes/javax/swing/Spring.java ! src/share/classes/javax/swing/SpringLayout.java ! src/share/classes/javax/swing/SwingUtilities.java ! src/share/classes/javax/swing/SwingWorker.java ! src/share/classes/javax/swing/Timer.java ! src/share/classes/javax/swing/TransferHandler.java ! src/share/classes/javax/swing/WindowConstants.java ! src/share/classes/javax/swing/border/Border.java ! src/share/classes/javax/swing/event/InternalFrameAdapter.java ! src/share/classes/javax/swing/event/InternalFrameEvent.java ! src/share/classes/javax/swing/event/InternalFrameListener.java ! src/share/classes/javax/swing/event/TreeExpansionEvent.java ! src/share/classes/javax/swing/event/TreeExpansionListener.java ! src/share/classes/javax/swing/event/TreeModelEvent.java ! src/share/classes/javax/swing/event/TreeModelListener.java ! src/share/classes/javax/swing/event/TreeSelectionListener.java ! src/share/classes/javax/swing/event/TreeWillExpandListener.java ! src/share/classes/javax/swing/filechooser/FileFilter.java ! src/share/classes/javax/swing/filechooser/FileView.java ! src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java ! src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java ! src/share/classes/javax/swing/table/TableModel.java ! src/share/classes/javax/swing/text/AbstractDocument.java ! src/share/classes/javax/swing/text/DefaultCaret.java ! src/share/classes/javax/swing/text/DefaultStyledDocument.java ! src/share/classes/javax/swing/text/JTextComponent.java ! src/share/classes/javax/swing/text/PlainDocument.java ! src/share/classes/javax/swing/text/StyleContext.java ! src/share/classes/javax/swing/text/html/HTMLDocument.java ! src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java ! src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java ! src/share/classes/javax/swing/tree/DefaultTreeModel.java ! src/share/classes/javax/swing/tree/ExpandVetoException.java ! src/share/classes/javax/swing/tree/TreeCellRenderer.java ! src/share/classes/javax/swing/tree/TreeModel.java ! src/share/classes/javax/swing/tree/TreeNode.java ! src/share/classes/javax/swing/tree/TreePath.java ! src/share/classes/javax/swing/tree/TreeSelectionModel.java ! src/share/classes/sun/swing/PrintingStatus.java ! src/share/classes/sun/text/normalizer/UCharacter.java ! src/share/demo/jfc/FileChooserDemo/FileChooserDemo.java Changeset: 01b40315f872 Author: alexsch Date: 2013-10-07 16:13 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/01b40315f872 8025438: [macosx] right JNFCall* method should be used in JDK-8008728 fix Reviewed-by: serb, anthony ! src/macosx/native/sun/awt/AWTWindow.m Changeset: 72afa269fa3b Author: alexsch Date: 2013-10-07 16:42 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/72afa269fa3b 8007219: [macosx] Frame size reverts meaning of maximized attribute if frame size close to display Reviewed-by: serb, anthony ! src/macosx/classes/sun/lwawt/LWWindowPeer.java ! src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java ! src/macosx/classes/sun/lwawt/macosx/CWrapper.java ! src/macosx/native/sun/awt/CWrapper.m + test/java/awt/Frame/MaximizedToMaximized/MaximizedToMaximized.java Changeset: 546c0ebfbf56 Author: cl Date: 2013-10-07 11:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/546c0ebfbf56 8025840: Fix all the doclint warnings about trademark Reviewed-by: art ! src/share/classes/javax/swing/AbstractAction.java ! src/share/classes/javax/swing/AbstractButton.java ! src/share/classes/javax/swing/AbstractCellEditor.java ! src/share/classes/javax/swing/AbstractListModel.java ! src/share/classes/javax/swing/Box.java ! src/share/classes/javax/swing/BoxLayout.java ! src/share/classes/javax/swing/ButtonGroup.java ! src/share/classes/javax/swing/CellRendererPane.java ! src/share/classes/javax/swing/DefaultBoundedRangeModel.java ! src/share/classes/javax/swing/DefaultButtonModel.java ! src/share/classes/javax/swing/DefaultCellEditor.java ! src/share/classes/javax/swing/DefaultListCellRenderer.java ! src/share/classes/javax/swing/DefaultListModel.java ! src/share/classes/javax/swing/DefaultListSelectionModel.java ! src/share/classes/javax/swing/DefaultSingleSelectionModel.java ! src/share/classes/javax/swing/ImageIcon.java ! src/share/classes/javax/swing/JApplet.java ! src/share/classes/javax/swing/JButton.java ! src/share/classes/javax/swing/JCheckBox.java ! src/share/classes/javax/swing/JCheckBoxMenuItem.java ! src/share/classes/javax/swing/JColorChooser.java ! src/share/classes/javax/swing/JComboBox.java ! src/share/classes/javax/swing/JComponent.java ! src/share/classes/javax/swing/JDesktopPane.java ! src/share/classes/javax/swing/JDialog.java ! src/share/classes/javax/swing/JEditorPane.java ! src/share/classes/javax/swing/JFormattedTextField.java ! src/share/classes/javax/swing/JFrame.java ! src/share/classes/javax/swing/JInternalFrame.java ! src/share/classes/javax/swing/JLabel.java ! src/share/classes/javax/swing/JLayeredPane.java ! src/share/classes/javax/swing/JList.java ! src/share/classes/javax/swing/JMenu.java ! src/share/classes/javax/swing/JMenuBar.java ! src/share/classes/javax/swing/JMenuItem.java ! src/share/classes/javax/swing/JOptionPane.java ! src/share/classes/javax/swing/JPanel.java ! src/share/classes/javax/swing/JPasswordField.java ! src/share/classes/javax/swing/JPopupMenu.java ! src/share/classes/javax/swing/JProgressBar.java ! src/share/classes/javax/swing/JRadioButton.java ! src/share/classes/javax/swing/JRadioButtonMenuItem.java ! src/share/classes/javax/swing/JRootPane.java ! src/share/classes/javax/swing/JScrollBar.java ! src/share/classes/javax/swing/JScrollPane.java ! src/share/classes/javax/swing/JSeparator.java ! src/share/classes/javax/swing/JSlider.java ! src/share/classes/javax/swing/JSpinner.java ! src/share/classes/javax/swing/JSplitPane.java ! src/share/classes/javax/swing/JTabbedPane.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/JTextArea.java ! src/share/classes/javax/swing/JTextField.java ! src/share/classes/javax/swing/JTextPane.java ! src/share/classes/javax/swing/JToggleButton.java ! src/share/classes/javax/swing/JToolBar.java ! src/share/classes/javax/swing/JToolTip.java ! src/share/classes/javax/swing/JTree.java ! src/share/classes/javax/swing/JViewport.java ! src/share/classes/javax/swing/JWindow.java ! src/share/classes/javax/swing/KeyStroke.java ! src/share/classes/javax/swing/OverlayLayout.java ! src/share/classes/javax/swing/ScrollPaneLayout.java ! src/share/classes/javax/swing/SizeRequirements.java ! src/share/classes/javax/swing/Spring.java ! src/share/classes/javax/swing/SpringLayout.java ! src/share/classes/javax/swing/Timer.java ! src/share/classes/javax/swing/UIDefaults.java ! src/share/classes/javax/swing/UIManager.java ! src/share/classes/javax/swing/UnsupportedLookAndFeelException.java ! src/share/classes/javax/swing/ViewportLayout.java ! src/share/classes/javax/swing/border/AbstractBorder.java ! src/share/classes/javax/swing/border/BevelBorder.java ! src/share/classes/javax/swing/border/CompoundBorder.java ! src/share/classes/javax/swing/border/EmptyBorder.java ! src/share/classes/javax/swing/border/EtchedBorder.java ! src/share/classes/javax/swing/border/LineBorder.java ! src/share/classes/javax/swing/border/MatteBorder.java ! src/share/classes/javax/swing/border/SoftBevelBorder.java ! src/share/classes/javax/swing/border/TitledBorder.java ! src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java ! src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java ! src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java ! src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java ! src/share/classes/javax/swing/event/AncestorEvent.java ! src/share/classes/javax/swing/event/CaretEvent.java ! src/share/classes/javax/swing/event/ChangeEvent.java ! src/share/classes/javax/swing/event/EventListenerList.java ! src/share/classes/javax/swing/event/HyperlinkEvent.java ! src/share/classes/javax/swing/event/InternalFrameEvent.java ! src/share/classes/javax/swing/event/ListDataEvent.java ! src/share/classes/javax/swing/event/ListSelectionEvent.java ! src/share/classes/javax/swing/event/MenuDragMouseEvent.java ! src/share/classes/javax/swing/event/MenuEvent.java ! src/share/classes/javax/swing/event/MenuKeyEvent.java ! src/share/classes/javax/swing/event/PopupMenuEvent.java ! src/share/classes/javax/swing/event/TableColumnModelEvent.java ! src/share/classes/javax/swing/event/TableModelEvent.java ! src/share/classes/javax/swing/event/TreeExpansionEvent.java ! src/share/classes/javax/swing/event/TreeModelEvent.java ! src/share/classes/javax/swing/event/TreeSelectionEvent.java ! src/share/classes/javax/swing/event/UndoableEditEvent.java ! src/share/classes/javax/swing/plaf/BorderUIResource.java ! src/share/classes/javax/swing/plaf/ColorUIResource.java ! src/share/classes/javax/swing/plaf/DimensionUIResource.java ! src/share/classes/javax/swing/plaf/FontUIResource.java ! src/share/classes/javax/swing/plaf/IconUIResource.java ! src/share/classes/javax/swing/plaf/InsetsUIResource.java ! src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java ! src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java ! src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java ! src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java ! src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java ! src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java ! src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java ! src/share/classes/javax/swing/plaf/basic/BasicListUI.java ! src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java ! src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java ! src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java ! src/share/classes/javax/swing/plaf/basic/BasicTextUI.java ! src/share/classes/javax/swing/plaf/basic/ComboPopup.java ! src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java ! src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java ! src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java ! src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java ! src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java ! src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java ! src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java ! src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java ! src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java ! src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java ! src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java ! src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java ! src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java ! src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java ! src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java ! src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java ! src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java ! src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java ! src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java ! src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java ! src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java ! src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java ! src/share/classes/javax/swing/table/AbstractTableModel.java ! src/share/classes/javax/swing/table/DefaultTableCellRenderer.java ! src/share/classes/javax/swing/table/DefaultTableColumnModel.java ! src/share/classes/javax/swing/table/DefaultTableModel.java ! src/share/classes/javax/swing/table/JTableHeader.java ! src/share/classes/javax/swing/table/TableColumn.java ! src/share/classes/javax/swing/text/AbstractDocument.java ! src/share/classes/javax/swing/text/BadLocationException.java ! src/share/classes/javax/swing/text/DateFormatter.java ! src/share/classes/javax/swing/text/DefaultCaret.java ! src/share/classes/javax/swing/text/DefaultEditorKit.java ! src/share/classes/javax/swing/text/DefaultFormatter.java ! src/share/classes/javax/swing/text/DefaultFormatterFactory.java ! src/share/classes/javax/swing/text/DefaultStyledDocument.java ! src/share/classes/javax/swing/text/InternationalFormatter.java ! src/share/classes/javax/swing/text/JTextComponent.java ! src/share/classes/javax/swing/text/MaskFormatter.java ! src/share/classes/javax/swing/text/NumberFormatter.java ! src/share/classes/javax/swing/text/PlainDocument.java ! src/share/classes/javax/swing/text/SimpleAttributeSet.java ! src/share/classes/javax/swing/text/StringContent.java ! src/share/classes/javax/swing/text/StyleContext.java ! src/share/classes/javax/swing/text/StyledEditorKit.java ! src/share/classes/javax/swing/text/TabSet.java ! src/share/classes/javax/swing/text/TabStop.java ! src/share/classes/javax/swing/text/TextAction.java ! src/share/classes/javax/swing/text/html/Option.java ! src/share/classes/javax/swing/tree/AbstractLayoutCache.java ! src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java ! src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java ! src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java ! src/share/classes/javax/swing/tree/DefaultTreeModel.java ! src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java ! src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java ! src/share/classes/javax/swing/tree/TreePath.java ! src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java ! src/share/classes/javax/swing/undo/CannotRedoException.java ! src/share/classes/javax/swing/undo/CannotUndoException.java ! src/share/classes/javax/swing/undo/UndoManager.java Changeset: bdc8abbce9c1 Author: yan Date: 2013-10-08 13:57 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bdc8abbce9c1 8025236: [javadoc] fix some errors in AWT Reviewed-by: yan, anthony Contributed-by: Dmitry Ginzburg ! src/share/classes/java/awt/event/InputEvent.java ! src/share/classes/java/awt/event/MouseEvent.java ! src/share/classes/java/awt/im/InputContext.java ! src/share/classes/java/awt/im/InputMethodHighlight.java Changeset: 01022f461570 Author: pchelko Date: 2013-10-08 15:17 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/01022f461570 7158311: GraphicsDevice.setDisplayMode(...) leads to hang when DISPLAY variable points to Oracle Linux 8001463: Regression : Deadlock between AWT-XAWT thread and AWT-EventQueue-0 Thread when screen resolution changes Reviewed-by: art, serb Contributed-by: alexander.zvegintsev at oracle.com ! src/solaris/classes/sun/awt/X11/XToolkit.java Changeset: a5d0730342a5 Author: pchelko Date: 2013-10-08 15:54 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a5d0730342a5 8025585: Win: Popups in JFXPanel do not receive MouseWheel events Reviewed-by: anthony, art ! src/windows/native/sun/windows/awt_Toolkit.cpp Changeset: 85a72bb00d74 Author: bagiras Date: 2013-10-08 16:04 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/85a72bb00d74 8000425: FileDialog documentation should be enhanced Reviewed-by: serb, anthony ! src/share/classes/java/awt/FileDialog.java Changeset: 01607de6265d Author: bagiras Date: 2013-10-08 16:56 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/01607de6265d 7068423: Spec for java.awt.GraphicsDevice.getFullScreenWindow() needs clarification Reviewed-by: art, anthony ! src/share/classes/java/awt/GraphicsDevice.java Changeset: 184b16f4e61f Author: bagiras Date: 2013-10-08 17:00 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/184b16f4e61f 7199196: Incremental transfer is broken because of a typo Reviewed-by: anthony, serb ! src/solaris/classes/sun/awt/X11/XSelection.java Changeset: 42d3ea1c35b4 Author: malenkov Date: 2013-10-08 18:10 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/42d3ea1c35b4 7081584: Specification for Window.isAlwaysOnTopSupported needs to be clarified Reviewed-by: art, serb ! src/macosx/classes/sun/lwawt/LWComponentPeer.java ! src/macosx/classes/sun/lwawt/macosx/CFileDialog.java ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Window.java ! src/share/classes/java/awt/peer/ComponentPeer.java ! src/share/classes/sun/awt/NullComponentPeer.java ! src/solaris/classes/sun/awt/X11/XComponentPeer.java ! src/windows/classes/sun/awt/windows/WComponentPeer.java Changeset: 6914b883c3bb Author: malenkov Date: 2013-10-08 18:19 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6914b883c3bb 7172597: java.awt.KeyboardFocusManager.clearFocusOwner() missed javadoc tag @since 1.8 Reviewed-by: art, anthony ! src/share/classes/java/awt/KeyboardFocusManager.java Changeset: a2dd2b411723 Author: alexsch Date: 2013-10-08 18:45 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a2dd2b411723 7081594: Windows owned by an always-on-top window DO NOT automatically become always-on-top Reviewed-by: art, anthony, serb ! src/share/classes/java/awt/Window.java + test/java/awt/Window/AlwaysOnTop/AlwaysOnTopFieldTest.java Changeset: 0c06c38dfc3e Author: serb Date: 2013-10-08 21:24 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0c06c38dfc3e 8022119: test api/javax_sound/sampled/spi/MixerProvider/indexTGF_MixerProviderTests fails Reviewed-by: art, anthony ! src/share/classes/com/sun/media/sound/JSSecurityManager.java Changeset: b218a14bdc8a Author: serb Date: 2013-10-08 23:34 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b218a14bdc8a 8025603: Unused methods in the awt text peers should be removed Reviewed-by: art, anthony ! src/macosx/classes/sun/lwawt/LWTextComponentPeer.java ! src/share/classes/java/awt/TextComponent.java ! src/share/classes/java/awt/peer/TextComponentPeer.java ! src/solaris/classes/sun/awt/X11/XTextAreaPeer.java ! src/solaris/classes/sun/awt/X11/XTextFieldPeer.java ! src/windows/classes/sun/awt/windows/WButtonPeer.java ! src/windows/classes/sun/awt/windows/WCheckboxPeer.java ! src/windows/classes/sun/awt/windows/WChoicePeer.java ! src/windows/classes/sun/awt/windows/WComponentPeer.java ! src/windows/classes/sun/awt/windows/WLabelPeer.java ! src/windows/classes/sun/awt/windows/WListPeer.java ! src/windows/classes/sun/awt/windows/WScrollbarPeer.java ! src/windows/classes/sun/awt/windows/WTextAreaPeer.java ! src/windows/classes/sun/awt/windows/WTextComponentPeer.java ! src/windows/classes/sun/awt/windows/WTextFieldPeer.java ! src/windows/native/sun/windows/awt_TextArea.cpp ! src/windows/native/sun/windows/awt_TextComponent.cpp ! src/windows/native/sun/windows/awt_TextField.cpp Changeset: e591ac19174f Author: leonidr Date: 2013-10-09 01:03 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e591ac19174f 8004050: [macosx] The 'ESC' key does not work with jdk8 Reviewed-by: alexsch, serb ! src/macosx/classes/com/apple/laf/AquaComboBoxUI.java ! src/macosx/classes/com/apple/laf/AquaKeyBindings.java Changeset: c1ef9ebac26a Author: lana Date: 2013-10-08 14:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c1ef9ebac26a Merge ! src/solaris/classes/sun/awt/X11GraphicsEnvironment.java Changeset: 748207aa9620 Author: lana Date: 2013-10-08 14:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/748207aa9620 Merge ! makefiles/CompileJavaClasses.gmk ! makefiles/CreateJars.gmk - src/share/classes/java/lang/invoke/InvokeGeneric.java - src/share/classes/java/time/chrono/ChronoDateImpl.java - test/java/time/tck/java/time/chrono/TCKChronologySerialization.java Changeset: 575d4bc3bcae Author: lana Date: 2013-10-11 03:06 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/575d4bc3bcae Merge ! makefiles/CreateJars.gmk - src/share/classes/java/lang/invoke/InvokeGeneric.java - src/share/classes/java/time/chrono/ChronoDateImpl.java - test/java/time/tck/java/time/chrono/TCKChronologySerialization.java Changeset: 96644227daed Author: lana Date: 2013-10-11 23:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/96644227daed Merge ! makefiles/CompileJavaClasses.gmk ! makefiles/CreateJars.gmk Changeset: 3a5c987ff3a0 Author: lana Date: 2013-10-14 09:52 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3a5c987ff3a0 Merge Changeset: dd0deeb04933 Author: michaelm Date: 2013-10-14 22:09 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/dd0deeb04933 8014719: HttpClient/ProxyTest.java failing with IAE HttpURLPermission.parseURI Reviewed-by: alanb, chegar + src/share/classes/java/net/HostPortrange.java ! src/share/classes/java/net/HttpURLConnection.java - src/share/classes/java/net/HttpURLPermission.java + src/share/classes/java/net/URLPermission.java ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! src/share/classes/sun/security/tools/policytool/PolicyTool.java - test/java/net/HttpURLPermission/HttpURLPermissionTest.java - test/java/net/HttpURLPermission/URLTest.java - test/java/net/HttpURLPermission/policy.1 - test/java/net/HttpURLPermission/policy.2 - test/java/net/HttpURLPermission/policy.3 + test/java/net/URLPermission/URLPermissionTest.java + test/java/net/URLPermission/URLTest.java + test/java/net/URLPermission/policy.1 + test/java/net/URLPermission/policy.2 + test/java/net/URLPermission/policy.3 Changeset: 94d4aa2fb414 Author: henryjen Date: 2013-10-14 17:27 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/94d4aa2fb414 8026362: java/lang/invoke/lambda/LogGeneratedClassesTest.java failed on windows, jtreg report Fail to org.testng.SkipException Reviewed-by: chegar ! test/java/lang/invoke/lambda/LogGeneratedClassesTest.java Changeset: 50e88f25255f Author: joehw Date: 2013-10-14 22:24 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/50e88f25255f 8015092: SchemaFactory cannot parse schema if whitespace added within patterns in Selector XPath expression Reviewed-by: lancea, alanb + test/javax/xml/jaxp/validation/8015092/XPathWhiteSpaceTest.java + test/javax/xml/jaxp/validation/8015092/idIxpns.xsd + test/javax/xml/jaxp/validation/8015092/idIxpns1.xsd + test/javax/xml/jaxp/validation/8015092/idJ029.xsd + test/javax/xml/jaxp/validation/8015092/idJimp.xsd Changeset: abe8d432f714 Author: jbachorik Date: 2013-10-15 10:26 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/abe8d432f714 6804470: JvmstatCountersTest.java test times out on slower machines Summary: Increasing the default timeout to cater for the slower machines Reviewed-by: alanb ! test/sun/management/jmxremote/bootstrap/JvmstatCountersTest.java Changeset: 0b6632e570b0 Author: alanb Date: 2013-10-15 10:52 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0b6632e570b0 8026398: Can't load jdk.Exported, ClassNotFoundException Reviewed-by: chegar, mchung ! make/tools/src/build/tools/buildmetaindex/BuildMetaIndex.java Changeset: 2c16140fb515 Author: dfuchs Date: 2013-10-15 13:01 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2c16140fb515 8026404: Logging in Applet can trigger ACE: access denied ("java.lang.RuntimePermission" "modifyThreadGroup") Summary: The test 'threadGroup.getParent() == null' can sometimes throw ACE and needs to be wrapped in doPrivileged. Reviewed-by: alanb, mchung, dholmes ! src/share/classes/sun/awt/AppContext.java ! test/TEST.groups + test/java/util/logging/TestMainAppContext.java Changeset: ea422834f880 Author: rriggs Date: 2013-09-26 23:05 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ea422834f880 8025720: Separate temporal interface layer Summary: Remove ZoneId and Chronology from TemporalField interface Reviewed-by: sherman Contributed-by: scolebourne at joda.org ! src/share/classes/java/time/format/Parsed.java ! src/share/classes/java/time/temporal/IsoFields.java ! src/share/classes/java/time/temporal/JulianFields.java ! src/share/classes/java/time/temporal/TemporalField.java ! src/share/classes/java/time/temporal/WeekFields.java ! test/java/time/tck/java/time/format/TCKDateTimeParseResolver.java Changeset: 110107410393 Author: scolebourne Date: 2013-07-09 21:35 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/110107410393 8025719: Change Chronology to an interface Summary: Split Chronology and add AbstractChronology Reviewed-by: darcy Contributed-by: scolebourne at joda.org + src/share/classes/java/time/chrono/AbstractChronology.java ! src/share/classes/java/time/chrono/ChronoLocalDate.java ! src/share/classes/java/time/chrono/ChronoLocalDateTime.java ! src/share/classes/java/time/chrono/ChronoZonedDateTime.java ! src/share/classes/java/time/chrono/Chronology.java ! src/share/classes/java/time/chrono/HijrahChronology.java ! src/share/classes/java/time/chrono/IsoChronology.java ! src/share/classes/java/time/chrono/JapaneseChronology.java ! src/share/classes/java/time/chrono/MinguoChronology.java ! src/share/classes/java/time/chrono/Ser.java ! src/share/classes/java/time/chrono/ThaiBuddhistChronology.java ! test/java/time/tck/java/time/chrono/CopticChronology.java Changeset: 087c8c1d2631 Author: rriggs Date: 2013-10-15 13:14 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/087c8c1d2631 8025722: TemporalAdjusters and TemporalQueries Summary: Move static from interfaces methods to supporting classes Reviewed-by: sherman ! src/share/classes/java/time/DayOfWeek.java ! src/share/classes/java/time/Instant.java ! src/share/classes/java/time/LocalDate.java ! src/share/classes/java/time/LocalDateTime.java ! src/share/classes/java/time/LocalTime.java ! src/share/classes/java/time/Month.java ! src/share/classes/java/time/MonthDay.java ! src/share/classes/java/time/OffsetDateTime.java ! src/share/classes/java/time/OffsetTime.java ! src/share/classes/java/time/Period.java ! src/share/classes/java/time/Year.java ! src/share/classes/java/time/YearMonth.java ! src/share/classes/java/time/ZoneId.java ! src/share/classes/java/time/ZoneOffset.java ! src/share/classes/java/time/chrono/AbstractChronology.java ! src/share/classes/java/time/chrono/ChronoLocalDate.java ! src/share/classes/java/time/chrono/ChronoLocalDateTime.java ! src/share/classes/java/time/chrono/ChronoPeriodImpl.java ! src/share/classes/java/time/chrono/ChronoZonedDateTime.java ! src/share/classes/java/time/chrono/Chronology.java ! src/share/classes/java/time/chrono/Era.java ! src/share/classes/java/time/chrono/JapaneseChronology.java ! src/share/classes/java/time/format/DateTimeFormatterBuilder.java ! src/share/classes/java/time/format/DateTimePrintContext.java ! src/share/classes/java/time/format/Parsed.java ! src/share/classes/java/time/temporal/TemporalAccessor.java ! src/share/classes/java/time/temporal/TemporalAdjuster.java ! src/share/classes/java/time/temporal/TemporalAdjusters.java ! src/share/classes/java/time/temporal/TemporalAmount.java ! src/share/classes/java/time/temporal/TemporalQueries.java ! src/share/classes/java/time/temporal/TemporalQuery.java ! src/share/classes/java/time/temporal/package-info.java ! src/share/classes/java/time/zone/ZoneOffsetTransitionRule.java ! src/share/classes/java/util/Formatter.java ! test/java/time/tck/java/time/TCKDayOfWeek.java ! test/java/time/tck/java/time/TCKInstant.java ! test/java/time/tck/java/time/TCKLocalDate.java ! test/java/time/tck/java/time/TCKLocalDateTime.java ! test/java/time/tck/java/time/TCKLocalTime.java ! test/java/time/tck/java/time/TCKMonth.java ! test/java/time/tck/java/time/TCKMonthDay.java ! test/java/time/tck/java/time/TCKOffsetDateTime.java ! test/java/time/tck/java/time/TCKOffsetTime.java ! test/java/time/tck/java/time/TCKYear.java ! test/java/time/tck/java/time/TCKYearMonth.java ! test/java/time/tck/java/time/TCKZoneId.java ! test/java/time/tck/java/time/TCKZoneOffset.java ! test/java/time/tck/java/time/TCKZonedDateTime.java ! test/java/time/tck/java/time/TestIsoChronology.java ! test/java/time/tck/java/time/chrono/CopticDate.java ! test/java/time/tck/java/time/chrono/TCKChronoLocalDateTime.java ! test/java/time/tck/java/time/chrono/TCKChronoZonedDateTime.java ! test/java/time/tck/java/time/chrono/TCKIsoChronology.java ! test/java/time/tck/java/time/chrono/TCKJapaneseChronology.java ! test/java/time/tck/java/time/chrono/TCKMinguoChronology.java ! test/java/time/tck/java/time/chrono/TCKThaiBuddhistChronology.java ! test/java/time/tck/java/time/format/TCKChronoPrinterParser.java ! test/java/time/tck/java/time/format/TCKDateTimeFormatters.java ! test/java/time/tck/java/time/format/TCKDateTimeParseResolver.java ! test/java/time/tck/java/time/format/TCKLocalizedPrinterParser.java ! test/java/time/tck/java/time/format/TCKZoneIdPrinterParser.java ! test/java/time/tck/java/time/temporal/TCKTemporalAdjusters.java ! test/java/time/test/java/time/chrono/TestUmmAlQuraChronology.java ! test/java/time/test/java/time/format/TestCharLiteralParser.java ! test/java/time/test/java/time/format/TestNonIsoFormatter.java ! test/java/time/test/java/time/format/TestNumberParser.java ! test/java/time/test/java/time/format/TestStringLiteralParser.java ! test/java/time/test/java/time/format/TestZoneTextPrinterParser.java ! test/java/time/test/java/util/TestFormatter.java Changeset: b3baca585b7f Author: jbachorik Date: 2013-04-23 09:37 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b3baca585b7f 8011081: Improve jhat Summary: Properly escape HTML output Reviewed-by: alanb, mschoene, sundar ! src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/HttpReader.java ! src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/OQLHelp.java ! src/share/classes/com/sun/tools/hat/internal/server/OQLQuery.java ! src/share/classes/com/sun/tools/hat/internal/server/QueryHandler.java ! src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java Changeset: 37f6f4dbfc6d Author: ksrini Date: 2013-05-07 13:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/37f6f4dbfc6d 8013506: Better Pack200 data handling Reviewed-by: jrose, kizune, mschoene ! src/share/native/com/sun/java/util/jar/pack/zip.cpp Changeset: 139a01719eec Author: jchen Date: 2013-05-09 09:52 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/139a01719eec 8013510: Augment image writing code Reviewed-by: bae, prr ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageReader.java ! src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java ! src/share/native/sun/awt/image/jpeg/imageioJPEG.c Changeset: f2068f4244a5 Author: bae Date: 2013-05-14 12:51 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f2068f4244a5 8014093: Improve parsing of images Reviewed-by: prr, jgodinez ! src/share/native/sun/awt/image/awt_parseImage.c ! src/share/native/sun/awt/image/awt_parseImage.h ! src/share/native/sun/awt/medialib/awt_ImagingLib.c Changeset: 65d5a6e53d12 Author: alexsch Date: 2013-05-20 14:39 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/65d5a6e53d12 8013744: Better tabling for AWT Reviewed-by: art, malenkov, skoivu ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/UIDefaults.java ! src/share/classes/javax/swing/text/DefaultFormatter.java ! src/share/classes/javax/swing/text/NumberFormatter.java ! src/share/classes/sun/swing/SwingLazyValue.java ! src/share/classes/sun/swing/SwingUtilities2.java Changeset: 52be85d5149b Author: bae Date: 2013-05-20 15:26 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/52be85d5149b 8014102: Improve image conversion Reviewed-by: mschoene, prr, jgodinez ! src/share/native/sun/awt/medialib/awt_ImagingLib.c Changeset: 08b88f831dd1 Author: malenkov Date: 2013-05-20 19:49 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/08b88f831dd1 8012071: Better Building of Beans Reviewed-by: art, skoivu ! src/share/classes/java/beans/Beans.java ! src/share/classes/java/beans/DefaultPersistenceDelegate.java ! src/share/classes/java/beans/MetaData.java Changeset: 140c474ab8b9 Author: malenkov Date: 2013-05-31 21:25 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/140c474ab8b9 8012277: Improve AWT DataFlavor Reviewed-by: art, skoivu ! src/share/classes/java/awt/datatransfer/DataFlavor.java Changeset: 23fe888b698d Author: weijun Date: 2013-05-08 09:21 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/23fe888b698d 8014341: Better service from Kerberos servers Summary: read incoming data safely and take care of null return value Reviewed-by: valeriep, ahgross ! src/share/classes/sun/security/krb5/KdcComm.java ! src/share/classes/sun/security/krb5/internal/NetClient.java Changeset: 532343ec60b7 Author: weijun Date: 2013-06-13 10:21 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/532343ec60b7 8013739: Better LDAP resource management Reviewed-by: ahgross, mchung, xuelei ! src/share/classes/com/sun/jndi/ldap/VersionHelper12.java ! src/share/classes/java/lang/System.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/sun/misc/JavaLangAccess.java Changeset: 6d9ec6877a7f Author: weijun Date: 2013-06-13 10:31 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6d9ec6877a7f 8015731: Subject java.security.auth.subject to improvements Reviewed-by: skoivu, mullan ! src/share/classes/javax/security/auth/Subject.java Changeset: ccca37ca416a Author: jchen Date: 2013-06-13 12:14 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ccca37ca416a 8014098: Better profile validation Reviewed-by: bae, mschoene, prr ! src/share/native/sun/java2d/cmm/lcms/cmsio0.c Changeset: 5a14ecd30b4e Author: msheppar Date: 2013-06-14 15:49 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5a14ecd30b4e 8011157: Improve CORBA portablility Summary: fix also reviewed by Alexander Fomin Reviewed-by: alanb, coffeys, skoivu ! make/com/sun/jmx/Makefile ! src/share/classes/javax/management/modelmbean/RequiredModelMBean.java ! src/share/classes/javax/management/remote/rmi/RMIConnector.java Changeset: 7addece3f21e Author: jbachorik Date: 2013-06-20 08:51 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7addece3f21e 8014085: Better serialization support in JMX classes Reviewed-by: alanb, dfuchs, skoivu ! src/share/classes/javax/management/MBeanNotificationInfo.java ! src/share/classes/javax/management/remote/JMXPrincipal.java ! src/share/classes/javax/management/remote/JMXServiceURL.java ! src/share/classes/javax/management/remote/NotificationResult.java ! src/share/classes/javax/management/remote/TargetedNotification.java Changeset: eb29deb3c1db Author: chegar Date: 2013-06-27 10:37 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/eb29deb3c1db Merge Changeset: 0a06ec55aacd Author: bae Date: 2013-07-01 15:17 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0a06ec55aacd 8017287: Better resource disposal Reviewed-by: prr, vadim, skoivu ! src/share/classes/sun/java2d/Disposer.java Changeset: 51204df822d3 Author: erikj Date: 2013-07-03 10:14 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/51204df822d3 8012146: Improve tool support Reviewed-by: ksrini, dholmes, alanb, anthony ! makefiles/CompileLaunchers.gmk ! makefiles/Images.gmk ! test/Makefile Changeset: 888fd0ad7e1e Author: ascarpino Date: 2013-07-03 15:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/888fd0ad7e1e 8011071: Better crypto provider handling Reviewed-by: hawtin, valeriep ! src/share/classes/com/sun/crypto/provider/DHPrivateKey.java ! src/share/classes/sun/security/ec/ECPrivateKeyImpl.java ! src/share/classes/sun/security/jgss/GSSCredentialImpl.java ! src/share/classes/sun/security/pkcs/PKCS8Key.java ! src/share/classes/sun/security/pkcs11/P11Key.java ! src/share/classes/sun/security/provider/DSAPrivateKey.java ! src/share/classes/sun/security/rsa/RSAPrivateCrtKeyImpl.java ! src/share/classes/sun/security/rsa/RSAPrivateKeyImpl.java Changeset: a06b764cc2d0 Author: dsamersoff Date: 2013-07-08 16:15 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a06b764cc2d0 8008589: Better MBean permission validation Summary: Better MBean permission validation Reviewed-by: skoivu, dfuchs, mchung, sjiang ! src/share/classes/javax/management/MBeanTrustPermission.java Changeset: 9c6de162771c Author: smarks Date: 2013-07-11 13:32 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9c6de162771c 8014987: Augment serialization handling Reviewed-by: alanb, coffeys, skoivu ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/java/io/ObjectOutputStream.java Changeset: c40752886882 Author: jfranck Date: 2013-07-15 14:44 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c40752886882 8014349: (cl) Class.getDeclaredClass problematic in some class loader configurations Reviewed-by: mchung, ahgross, darcy ! src/share/classes/java/lang/Class.java ! src/share/native/java/lang/Class.c Changeset: 48548e40187a Author: mchung Date: 2013-07-15 20:24 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/48548e40187a 8017291: Cast Proxies Aside Reviewed-by: alanb, ahgross ! src/share/classes/java/lang/ClassLoader.java Changeset: 047c99b53994 Author: chegar Date: 2013-07-15 18:17 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/047c99b53994 Merge ! src/share/classes/java/lang/Thread.java - src/share/classes/java/security/acl/package.html - src/share/classes/java/security/cert/package.html - src/share/classes/java/security/interfaces/package.html - src/share/classes/java/security/package.html - src/share/classes/java/security/spec/package.html ! src/share/classes/sun/security/krb5/KdcComm.java ! src/share/classes/sun/swing/SwingUtilities2.java - test/java/util/Comparators/BasicTest.java Changeset: 3062c96e79e0 Author: chegar Date: 2013-07-16 12:23 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3062c96e79e0 Merge Changeset: e1497f102a8a Author: malenkov Date: 2013-07-16 21:11 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e1497f102a8a 8019617: Better view of objects Reviewed-by: art, skoivu ! src/share/classes/javax/swing/text/html/ObjectView.java Changeset: 69a2dc92fefe Author: michaelm Date: 2013-07-18 18:52 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/69a2dc92fefe 8015743: Address internet addresses Reviewed-by: alanb, khazra, skoivu ! src/share/classes/java/net/Inet6Address.java ! src/share/classes/java/net/InetAddress.java ! src/share/native/java/net/Inet6Address.c ! src/share/native/java/net/net_util.c ! src/share/native/java/net/net_util.h ! src/solaris/native/java/net/Inet6AddressImpl.c ! src/solaris/native/java/net/NetworkInterface.c ! src/solaris/native/java/net/PlainDatagramSocketImpl.c ! src/solaris/native/java/net/net_util_md.c ! src/windows/native/java/net/Inet6AddressImpl.c ! src/windows/native/java/net/NetworkInterface.c ! src/windows/native/java/net/NetworkInterface_winXP.c ! src/windows/native/java/net/TwoStacksPlainSocketImpl.c ! src/windows/native/java/net/net_util_md.c ! test/java/net/Inet6Address/serialize/Serialize.java Changeset: 5d8f1e697cd8 Author: okutsu Date: 2013-07-19 12:14 +0900 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5d8f1e697cd8 8001029: Add new date/time capability Reviewed-by: mchung, hawtin ! src/share/classes/java/util/TimeZone.java + test/java/util/TimeZone/SetDefaultSecurityTest.java Changeset: fe90bd20865b Author: sjiang Date: 2013-07-19 13:35 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fe90bd20865b 8014534: Better profiling support Summary: Validation of parameters Reviewed-by: sspitsyn, skoivu, mchung ! src/share/classes/com/sun/demo/jvmti/hprof/Tracker.java ! src/share/demo/jvmti/hprof/hprof_class.c ! src/share/demo/jvmti/hprof/hprof_event.c Changeset: 0a51ccf778b3 Author: chegar Date: 2013-07-22 14:02 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0a51ccf778b3 Merge Changeset: 3725e8a70ae9 Author: mchung Date: 2013-07-22 19:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3725e8a70ae9 8017196: Ensure Proxies are handled appropriately Reviewed-by: dfuchs, jrose, jdn, ahgross, chegar ! src/share/classes/java/lang/invoke/MethodHandles.java ! src/share/classes/java/lang/reflect/Proxy.java ! src/share/classes/sun/reflect/misc/ReflectUtil.java Changeset: 5bde952bf23c Author: sgabdura Date: 2013-07-23 09:30 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5bde952bf23c 8016357: Update hotspot diagnostic class Summary: Add security check to HotSpotDiagnostic.dumpHeap Reviewed-by: fparain, sla, ahgross ! make/java/management/mapfile-vers ! makefiles/mapfiles/libmanagement/mapfile-vers ! src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java ! src/share/classes/sun/management/HotSpotDiagnostic.java ! src/share/native/sun/management/HotSpotDiagnostic.c Changeset: 5bdc55e87cae Author: weijun Date: 2013-07-17 18:46 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5bdc55e87cae 8020696: Merge problem for KdcComm.java Reviewed-by: chegar ! src/share/classes/sun/security/krb5/KdcComm.java Changeset: 490c67c5d9a2 Author: jchen Date: 2013-07-24 12:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/490c67c5d9a2 8020293: JVM crash Reviewed-by: prr, jgodinez ! src/share/classes/sun/font/GlyphLayout.java ! src/share/native/sun/font/layout/SunLayoutEngine.cpp Changeset: bcce47d9d8da Author: jbachorik Date: 2013-07-19 16:29 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bcce47d9d8da 8019584: javax/management/remote/mandatory/loading/MissingClassTest.java failed in nightly against jdk7u45: java.io.InvalidObjectException: Invalid notification: null Reviewed-by: mchung, sjiang, dfuchs, ahgross ! src/share/classes/javax/management/remote/NotificationResult.java ! src/share/classes/javax/management/remote/TargetedNotification.java ! test/javax/management/remote/mandatory/loading/MissingClassTest.java Changeset: d7a0bbf526f8 Author: jbachorik Date: 2013-07-29 04:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d7a0bbf526f8 8021577: JCK test api/javax_management/jmx_serial/modelmbean/ModelMBeanNotificationInfo/serial/index.html#Input has failed since jdk 7u45 b01 Reviewed-by: alanb, dfuchs, ahgross ! src/share/classes/javax/management/MBeanNotificationInfo.java Changeset: 1a1e42c8e988 Author: chegar Date: 2013-07-25 19:03 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1a1e42c8e988 Merge ! src/share/classes/com/sun/crypto/provider/DHPrivateKey.java - src/share/classes/com/sun/org/apache/xml/internal/security/resource/log4j.properties - src/share/classes/com/sun/org/apache/xml/internal/security/transforms/implementations/FuncHereContext.java - src/share/classes/com/sun/org/apache/xml/internal/security/utils/CachedXPathAPIHolder.java - src/share/classes/com/sun/org/apache/xml/internal/security/utils/CachedXPathFuncHereAPI.java - src/share/classes/com/sun/org/apache/xml/internal/security/utils/XPathFuncHereAPI.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/ClassLoader.java ! src/share/classes/java/lang/System.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/java/lang/invoke/MethodHandles.java ! src/share/classes/java/net/Inet6Address.java ! src/share/classes/java/net/InetAddress.java - src/share/classes/java/util/stream/StreamBuilder.java ! src/share/classes/javax/security/auth/Subject.java - src/share/classes/javax/security/auth/callback/package.html - src/share/classes/javax/security/auth/kerberos/package.html - src/share/classes/javax/security/auth/login/package.html - src/share/classes/javax/security/auth/package.html - src/share/classes/javax/security/auth/spi/package.html - src/share/classes/javax/security/auth/x500/package.html - src/share/classes/javax/security/cert/package.html - src/share/classes/javax/security/sasl/package.html ! src/share/classes/sun/misc/JavaLangAccess.java ! src/share/classes/sun/security/pkcs11/P11Key.java - test/java/util/Collections/EmptySortedSet.java Changeset: 446bc20447a1 Author: chegar Date: 2013-07-29 14:58 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/446bc20447a1 Merge Changeset: e537b7f5f39b Author: naoto Date: 2013-08-01 14:09 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e537b7f5f39b 8021286: Improve MacOS resourcing Reviewed-by: okutsu - make/sun/awt/FILES_c_macosx.gmk - make/sun/awt/FILES_export_macosx.gmk ! make/sun/awt/Makefile ! makefiles/CompileNativeLibraries.gmk ! src/macosx/classes/com/apple/laf/AquaLookAndFeel.java - src/macosx/classes/com/apple/resources/MacOSXResourceBundle.java - src/macosx/native/com/apple/resources/MacOSXResourceBundle.m Changeset: 44a063555ccd Author: chegar Date: 2013-08-02 11:11 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/44a063555ccd Merge Changeset: 17e1675e3d1e Author: serb Date: 2013-08-04 02:50 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/17e1675e3d1e 8021282: Better recycling of object instances Reviewed-by: art ! src/macosx/classes/com/apple/laf/AquaUtils.java Changeset: ba7566de89c6 Author: sjiang Date: 2013-08-06 10:33 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ba7566de89c6 8019292: Better Attribute Value Exceptions Reviewed-by: dfuchs, dholmes, ahgross ! src/share/classes/javax/management/BadAttributeValueExpException.java Changeset: 23476862c55b Author: malenkov Date: 2013-08-07 14:37 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/23476862c55b 8021969: The index_AccessAllowed jnlp can not load successfully with exception thrown in the log. Reviewed-by: art, skoivu ! src/share/classes/java/awt/datatransfer/DataFlavor.java Changeset: db9539b0061d Author: jbachorik Date: 2013-08-08 19:16 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/db9539b0061d 8021360: object not exported" on start of JMXConnectorServer for RMI-IIOP protocol with security manager Reviewed-by: alanb, ahgross, smarks, coffeys ! src/share/classes/com/sun/jmx/remote/protocol/iiop/IIOPProxyImpl.java Changeset: 077d8c2cc5f6 Author: chegar Date: 2013-08-09 14:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/077d8c2cc5f6 Merge ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/java/io/ObjectOutputStream.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/net/Inet6Address.java ! src/share/classes/java/net/InetAddress.java - src/share/classes/java/net/package.html ! src/share/classes/java/util/TimeZone.java ! src/share/native/java/net/net_util.c ! src/share/native/sun/awt/image/jpeg/imageioJPEG.c ! src/share/native/sun/awt/medialib/awt_ImagingLib.c ! test/Makefile Changeset: e82ddcc1b2fb Author: serb Date: 2013-08-12 19:57 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e82ddcc1b2fb 8021275: Better screening for ScreenMenu Reviewed-by: art ! src/macosx/classes/com/apple/laf/ScreenMenu.java Changeset: 3e3cbd93f4f1 Author: twisti Date: 2013-08-12 13:47 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3e3cbd93f4f1 8022066: Evaluation of method reference to signature polymorphic method crashes VM Reviewed-by: jrose ! src/share/classes/java/lang/invoke/MethodHandles.java + test/java/lang/invoke/MethodHandleConstants.java Changeset: e173b8786362 Author: ksrini Date: 2013-08-14 10:17 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e173b8786362 8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris Reviewed-by: dholmes, anthony, ahgross, erikj ! src/solaris/bin/java_md_solinux.c Changeset: 31010ca3da3e Author: chegar Date: 2013-08-15 21:44 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/31010ca3da3e Merge ! makefiles/CompileNativeLibraries.gmk ! src/share/classes/java/beans/Beans.java ! src/share/classes/java/beans/DefaultPersistenceDelegate.java - test/java/lang/System/MacJNUEncoding/ExpectedEncoding.java - test/java/lang/System/MacJNUEncoding/MacJNUEncoding.sh Changeset: 3f85c96eafcc Author: weijun Date: 2013-08-14 15:25 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3f85c96eafcc 8022931: Enhance Kerberos exceptions Reviewed-by: xuelei, ahgross ! src/share/classes/javax/security/auth/kerberos/KeyTab.java Changeset: 50bdb9577b27 Author: erikj Date: 2013-08-19 12:30 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/50bdb9577b27 8022719: tools/launcher/RunpathTest.java fails after 8012146 Reviewed-by: chegar ! test/tools/launcher/RunpathTest.java Changeset: 0f279113c95a Author: erikj Date: 2013-08-19 14:48 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0f279113c95a 8023231: Remove comma from jtreg bug line Reviewed-by: alanb, chegar ! test/tools/launcher/RunpathTest.java Changeset: ad35b4b6ce8e Author: chegar Date: 2013-08-23 12:32 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ad35b4b6ce8e Merge Changeset: 29f73bc50bd4 Author: chegar Date: 2013-08-30 09:37 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/29f73bc50bd4 Merge ! makefiles/CompileLaunchers.gmk ! makefiles/CompileNativeLibraries.gmk - src/share/classes/com/sun/security/auth/PolicyParser.java - src/share/classes/com/sun/security/auth/SubjectCodeSource.java ! src/share/classes/java/net/InetAddress.java - src/share/classes/java/util/jar/UnsupportedProfileException.java - src/share/classes/sun/security/provider/ConfigSpiFile.java ! src/solaris/native/java/net/NetworkInterface.c - test/java/net/URLClassLoader/profiles/Basic.java - test/java/net/URLClassLoader/profiles/Lib.java - test/java/net/URLClassLoader/profiles/basic.sh - test/tools/jar/AddAndUpdateProfile.java - test/tools/launcher/profiles/Basic.java - test/tools/launcher/profiles/Logging.java - test/tools/launcher/profiles/Main.java - test/tools/launcher/profiles/VersionCheck.java Changeset: a8593bc7c29d Author: chegar Date: 2013-09-06 09:41 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a8593bc7c29d Merge ! src/share/classes/java/lang/Class.java - src/share/classes/sun/misc/Compare.java - src/share/classes/sun/misc/Sort.java Changeset: 22ea25e71b4c Author: chegar Date: 2013-09-14 19:21 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/22ea25e71b4c Merge Changeset: 240072825ada Author: chegar Date: 2013-10-03 19:06 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/240072825ada Merge ! make/sun/awt/Makefile ! makefiles/CompileLaunchers.gmk ! makefiles/CompileNativeLibraries.gmk ! makefiles/Images.gmk - src/macosx/classes/sun/lwawt/SelectionClearListener.java - src/macosx/classes/sun/lwawt/macosx/CMouseInfoPeer.java ! src/share/classes/java/awt/datatransfer/DataFlavor.java ! src/share/classes/java/beans/DefaultPersistenceDelegate.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/invoke/MethodHandles.java - src/share/classes/java/util/stream/CloseableStream.java - src/share/classes/java/util/stream/DelegatingStream.java ! src/share/classes/javax/management/MBeanNotificationInfo.java ! src/share/classes/javax/management/remote/rmi/RMIConnector.java ! src/share/classes/javax/security/auth/Subject.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/UIDefaults.java ! src/share/classes/sun/swing/SwingUtilities2.java ! src/share/native/sun/awt/image/jpeg/imageioJPEG.c ! src/share/native/sun/font/layout/SunLayoutEngine.cpp ! src/solaris/bin/java_md_solinux.c ! src/windows/native/java/net/NetworkInterface.c ! src/windows/native/java/net/NetworkInterface_winXP.c - test/com/sun/jdi/Solaris32AndSolaris64Test.sh - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-i586/libLauncher.so - test/java/nio/channels/spi/SelectorProvider/inheritedChannel/lib/solaris-sparc/libLauncher.so - test/java/util/Collection/ListDefaults.java - test/java/util/Map/CheckRandomHashSeed.java - test/java/util/Map/TreeBinSplitBackToEntries.java - test/java/util/concurrent/ConcurrentHashMap/toArray.java - test/java/util/regex/PatternTest.java - test/sun/tools/jconsole/ImmutableResourceTest.java - test/sun/tools/jconsole/ImmutableResourceTest.sh ! test/tools/launcher/RunpathTest.java Changeset: adbf6d61c820 Author: chegar Date: 2013-10-07 11:31 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/adbf6d61c820 8025991: tools/launcher/RunpathTest.java fails Reviewed-by: erikj ! test/tools/launcher/RunpathTest.java Changeset: 99832c718cb8 Author: chegar Date: 2013-10-15 09:27 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/99832c718cb8 Merge - make/sun/awt/FILES_c_macosx.gmk - make/sun/awt/FILES_export_macosx.gmk - src/macosx/classes/com/apple/resources/MacOSXResourceBundle.java - src/macosx/native/com/apple/resources/MacOSXResourceBundle.m ! src/share/classes/com/sun/management/HotSpotDiagnosticMXBean.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/invoke/MethodHandles.java ! src/solaris/native/java/net/Inet6AddressImpl.c Changeset: 3dbfab65c17e Author: chegar Date: 2013-10-15 13:54 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3dbfab65c17e Merge ! src/share/classes/java/awt/datatransfer/DataFlavor.java ! src/share/classes/java/lang/ClassLoader.java - src/share/classes/java/net/HttpURLPermission.java ! src/share/classes/javax/swing/JTable.java ! src/share/classes/javax/swing/UIDefaults.java ! src/share/classes/javax/swing/text/DefaultFormatter.java ! src/share/classes/javax/swing/text/NumberFormatter.java - test/java/net/HttpURLPermission/HttpURLPermissionTest.java - test/java/net/HttpURLPermission/URLTest.java - test/java/net/HttpURLPermission/policy.1 - test/java/net/HttpURLPermission/policy.2 - test/java/net/HttpURLPermission/policy.3 Changeset: 27ac58b9a62a Author: chegar Date: 2013-10-15 20:46 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/27ac58b9a62a 8026513: ProblemList.txt Updates (10/2013) Reviewed-by: alanb ! test/ProblemList.txt Changeset: 78ffa90c77b2 Author: chegar Date: 2013-10-15 20:47 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/78ffa90c77b2 Merge Changeset: 3676f04e6553 Author: bpb Date: 2013-10-15 16:45 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3676f04e6553 8010371: getaddrinfo can fail with EAI_SYSTEM/EAGAIN, causes UnknownHostException to be thrown Summary: Modify UHE exception message for EAI_AGAIN failures. Reviewed-by: alanb, chegar, michaelm, dsamersoff Contributed-by: Brian Burkhalter ! src/solaris/native/java/net/Inet4AddressImpl.c ! src/windows/native/java/net/Inet4AddressImpl.c ! src/windows/native/java/net/Inet6AddressImpl.c Changeset: e33aea66caa3 Author: dholmes Date: 2013-10-15 20:54 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e33aea66caa3 8026378: TEST_BUG: Clean up TEST.groups Reviewed-by: mduigou, mchung, alanb ! test/TEST.groups Changeset: a70aab9b373e Author: weijun Date: 2013-10-16 14:39 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a70aab9b373e 8025124: InitialToken.useNullKey incorrectly applies NULL_KEY in some cases Reviewed-by: xuelei ! src/share/classes/sun/security/jgss/krb5/InitialToken.java ! src/share/classes/sun/security/krb5/KrbCred.java Changeset: 9ea6a464c147 Author: igerasim Date: 2013-10-15 21:15 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9ea6a464c147 8023431: Test java/util/zip/GZIP/GZIPInZip.java failed Summary: Properly close PipedStreams. Additional testing for malformed input Reviewed-by: darcy, sherman ! test/java/util/zip/GZIP/GZIPInZip.java Changeset: 76a7c0bc74fd Author: erikj Date: 2013-10-16 13:50 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/76a7c0bc74fd 6604021: RMIC is defaulting to BOOT jdk version, needs to be rmic.jar Reviewed-by: dholmes, chegar ! makefiles/GendataBreakIterator.gmk ! makefiles/GenerateClasses.gmk ! makefiles/Setup.gmk ! src/share/classes/sun/tools/tree/Node.java Changeset: e078fd8a78f6 Author: erikj Date: 2013-10-16 15:53 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e078fd8a78f6 Merge Changeset: d8eec0e3a023 Author: robm Date: 2013-10-16 15:06 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d8eec0e3a023 8026245: InetAddress.getLocalHost crash if IPv6 disabled (macosx) Reviewed-by: chegar, alanb ! src/solaris/native/java/net/Inet4AddressImpl.c ! src/solaris/native/java/net/Inet6AddressImpl.c ! test/java/net/InetAddress/GetLocalHostWithSM.java ! test/java/net/Socket/GetLocalAddress.java Changeset: 445667b19e32 Author: dfuchs Date: 2013-10-16 17:19 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/445667b19e32 8011638: Remove deprecated methods in sun.util.logging.PlatformLogger Reviewed-by: psandoz, mchung, alanb, chegar ! src/share/classes/sun/font/FontUtilities.java ! src/share/classes/sun/util/logging/PlatformLogger.java ! test/sun/util/logging/PlatformLoggerTest.java Changeset: 2ef43f3a901c Author: dfuchs Date: 2013-10-16 20:47 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2ef43f3a901c 8013839: Enhance Logger API for handling of resource bundles 4814565: (rb) add method to get basename from a ResourceBundle Summary: adds Logger.setResourceBundle(ResourceBundle) and ResourceBundle.getBaseBundleName() Reviewed-by: mchung, naoto ! src/share/classes/java/util/ResourceBundle.java ! src/share/classes/java/util/logging/Logger.java + test/java/util/ResourceBundle/getBaseBundleName/TestGetBaseBundleName.java + test/java/util/ResourceBundle/getBaseBundleName/resources/ListBundle.java + test/java/util/ResourceBundle/getBaseBundleName/resources/ListBundle_fr.java + test/java/util/ResourceBundle/getBaseBundleName/resources/PropertyBundle.properties + test/java/util/ResourceBundle/getBaseBundleName/resources/PropertyBundle_fr.properties + test/java/util/logging/Logger/logrb/TestLogrbResourceBundle.java + test/java/util/logging/Logger/logrb/resources/ListBundle.java + test/java/util/logging/Logger/logrb/resources/ListBundle_fr.java + test/java/util/logging/Logger/logrb/resources/PropertyBundle.properties + test/java/util/logging/Logger/logrb/resources/PropertyBundle_fr.properties + test/java/util/logging/Logger/setResourceBundle/TestSetResourceBundle.java + test/java/util/logging/Logger/setResourceBundle/resources/ListBundle.java + test/java/util/logging/Logger/setResourceBundle/resources/ListBundle_fr.java + test/java/util/logging/Logger/setResourceBundle/resources/PropertyBundle.properties + test/java/util/logging/Logger/setResourceBundle/resources/PropertyBundle_fr.properties Changeset: cf9cb3d241a3 Author: mduigou Date: 2013-10-16 13:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cf9cb3d241a3 8025910: rename substream(long) -> skip and remove substream(long,long) Reviewed-by: psandoz, henryjen ! src/share/classes/java/util/stream/DoublePipeline.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntPipeline.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongPipeline.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/ReferencePipeline.java ! src/share/classes/java/util/stream/Stream.java ! test/java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java Changeset: 60e3cdbe8cdf Author: aefimov Date: 2013-10-13 14:19 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/60e3cdbe8cdf 8025255: (tz) Support tzdata2013g Reviewed-by: okutsu, mfang ! make/sun/javazic/tzdata/VERSION ! make/sun/javazic/tzdata/africa ! make/sun/javazic/tzdata/antarctica ! make/sun/javazic/tzdata/asia ! make/sun/javazic/tzdata/australasia ! make/sun/javazic/tzdata/backward ! make/sun/javazic/tzdata/etcetera ! make/sun/javazic/tzdata/europe ! make/sun/javazic/tzdata/iso3166.tab ! make/sun/javazic/tzdata/leapseconds ! make/sun/javazic/tzdata/northamerica ! make/sun/javazic/tzdata/southamerica ! make/sun/javazic/tzdata/zone.tab ! src/share/classes/sun/util/resources/TimeZoneNames.java ! src/share/classes/sun/util/resources/de/TimeZoneNames_de.java ! src/share/classes/sun/util/resources/es/TimeZoneNames_es.java ! src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java ! src/share/classes/sun/util/resources/it/TimeZoneNames_it.java ! src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java ! src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java ! src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java ! src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java ! src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java ! test/sun/util/calendar/zi/tzdata/VERSION ! test/sun/util/calendar/zi/tzdata/africa ! test/sun/util/calendar/zi/tzdata/antarctica ! test/sun/util/calendar/zi/tzdata/asia ! test/sun/util/calendar/zi/tzdata/australasia ! test/sun/util/calendar/zi/tzdata/backward ! test/sun/util/calendar/zi/tzdata/etcetera ! test/sun/util/calendar/zi/tzdata/europe ! test/sun/util/calendar/zi/tzdata/iso3166.tab ! test/sun/util/calendar/zi/tzdata/leapseconds ! test/sun/util/calendar/zi/tzdata/northamerica ! test/sun/util/calendar/zi/tzdata/southamerica ! test/sun/util/calendar/zi/tzdata/zone.tab Changeset: e2e3c2c249e2 Author: henryjen Date: 2013-10-16 21:34 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e2e3c2c249e2 8026768: java.util.Map.Entry comparingBy methods missing @since 1.8 Reviewed-by: dholmes ! src/share/classes/java/util/Map.java Changeset: ce266885222d Author: peytoia Date: 2013-10-17 13:57 +0900 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ce266885222d 8025703: Update LSR datafile for BCP 47 Reviewed-by: okutsu ! src/share/classes/sun/util/locale/LocaleEquivalentMaps.java + test/java/util/Locale/Bug8025703.java ! test/java/util/Locale/tools/language-subtag-registry.txt Changeset: a45acc8de0f3 Author: wetmore Date: 2013-10-16 23:32 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a45acc8de0f3 8026762: jdk8-tl builds windows builds failing in corba - javac: no source files Reviewed-by: katleman, dholmes ! makefiles/GenerateClasses.gmk Changeset: 37e3dcb798c3 Author: weijun Date: 2013-10-17 20:56 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/37e3dcb798c3 8026712: TEST_BUG: update sun/security/tools/keytool/autotest.sh with a new location to find of libsoftokn3.so Reviewed-by: vinnie ! test/sun/security/tools/keytool/autotest.sh Changeset: 0a6730b5e192 Author: drchase Date: 2013-10-16 17:55 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0a6730b5e192 8022718: Runtime accessibility checking: protected class, if extended, should be accessible from another package Summary: Modify accessibility check; it was muddled about Java vs JVM protection terminology. Reviewed-by: jrose ! src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/share/classes/sun/invoke/util/VerifyAccess.java ! src/share/classes/sun/reflect/Reflection.java + test/java/lang/invoke/accessProtectedSuper/BogoLoader.java + test/java/lang/invoke/accessProtectedSuper/MethodInvoker.java + test/java/lang/invoke/accessProtectedSuper/Test.java + test/java/lang/invoke/accessProtectedSuper/anotherpkg/MethodSupplierOuter.java Changeset: 36fe6a9bd43e Author: rriggs Date: 2013-10-17 10:37 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/36fe6a9bd43e 8026516: javadoc errors in java.time Summary: Corrected links to TemporalQuery and TemporalField.resolve Reviewed-by: mduigou, darcy, lancea ! src/share/classes/java/time/Instant.java ! src/share/classes/java/time/LocalDateTime.java ! src/share/classes/java/time/LocalTime.java ! src/share/classes/java/time/OffsetDateTime.java ! src/share/classes/java/time/OffsetTime.java ! src/share/classes/java/time/ZoneId.java ! src/share/classes/java/time/ZoneOffset.java ! src/share/classes/java/time/ZonedDateTime.java ! src/share/classes/java/time/chrono/ChronoLocalDate.java ! src/share/classes/java/time/chrono/Chronology.java ! src/share/classes/java/time/chrono/Era.java ! src/share/classes/java/time/chrono/IsoChronology.java ! src/share/classes/java/time/chrono/IsoEra.java ! src/share/classes/java/time/chrono/MinguoChronology.java ! src/share/classes/java/time/chrono/MinguoEra.java ! src/share/classes/java/time/chrono/ThaiBuddhistChronology.java ! src/share/classes/java/time/chrono/ThaiBuddhistEra.java ! src/share/classes/java/time/format/DateTimeFormatter.java ! src/share/classes/java/time/format/DateTimeFormatterBuilder.java ! src/share/classes/java/time/temporal/IsoFields.java ! src/share/classes/java/time/temporal/JulianFields.java ! src/share/classes/java/time/temporal/Temporal.java ! src/share/classes/java/time/temporal/WeekFields.java ! src/share/classes/java/time/zone/ZoneOffsetTransitionRule.java ! src/share/classes/java/time/zone/ZoneRules.java Changeset: 5d866df64ae3 Author: mullan Date: 2013-10-17 10:18 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5d866df64ae3 8026346: test/java/lang/SecurityManager/CheckPackageAccess.java failing Reviewed-by: vinnie ! src/share/lib/security/java.security-macosx ! test/java/lang/SecurityManager/CheckPackageAccess.java Changeset: 04e8b8fc6906 Author: mullan Date: 2013-10-17 10:37 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/04e8b8fc6906 Merge - make/sun/awt/FILES_c_macosx.gmk - make/sun/awt/FILES_export_macosx.gmk - src/macosx/classes/com/apple/resources/MacOSXResourceBundle.java - src/macosx/native/com/apple/resources/MacOSXResourceBundle.m - src/share/classes/java/net/HttpURLPermission.java - test/java/net/HttpURLPermission/HttpURLPermissionTest.java - test/java/net/HttpURLPermission/URLTest.java - test/java/net/HttpURLPermission/policy.1 - test/java/net/HttpURLPermission/policy.2 - test/java/net/HttpURLPermission/policy.3 Changeset: 85a73ad28c53 Author: mullan Date: 2013-10-17 11:34 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/85a73ad28c53 Merge Changeset: 456a9b199208 Author: rriggs Date: 2013-10-17 13:43 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/456a9b199208 8026183: minor documentation problems in java.lang.invoke 8015808: Typo in MethodHandle javadoc Summary: Fix typos and javadoc markup and extraneous paragraph tags Reviewed-by: lancea ! src/share/classes/java/lang/invoke/CallSite.java ! src/share/classes/java/lang/invoke/ConstantCallSite.java ! src/share/classes/java/lang/invoke/MethodHandle.java ! src/share/classes/java/lang/invoke/MethodHandles.java ! src/share/classes/java/lang/invoke/MethodType.java Changeset: bc04f561bb78 Author: joehw Date: 2013-10-17 11:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bc04f561bb78 8015243: SchemaFactory does not catch enum. value that is not in the value space of the base type, anyURI Reviewed-by: lancea + test/javax/xml/jaxp/validation/8015243/AnyURITest.java + test/javax/xml/jaxp/validation/8015243/anyURI_b006.xsd Changeset: fa38f8e0accd Author: juh Date: 2013-10-17 12:00 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fa38f8e0accd 8026233: test/sun/security/tools/keytool/StorePasswords.java needs to clean up files Reviewed-by: vinnie ! test/sun/security/tools/keytool/StorePasswords.java Changeset: 64c0ac7cd936 Author: lancea Date: 2013-10-17 15:14 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/64c0ac7cd936 8026812: doclint clean up for java.sql and javax.sql Reviewed-by: mduigou ! src/share/classes/java/sql/CallableStatement.java ! src/share/classes/java/sql/Connection.java ! src/share/classes/java/sql/DatabaseMetaData.java ! src/share/classes/java/sql/ResultSet.java ! src/share/classes/java/sql/SQLException.java ! src/share/classes/java/sql/SQLFeatureNotSupportedException.java ! src/share/classes/java/sql/SQLPermission.java ! src/share/classes/java/sql/SQLWarning.java ! src/share/classes/java/sql/SQLXML.java ! src/share/classes/java/sql/Statement.java ! src/share/classes/javax/sql/CommonDataSource.java ! src/share/classes/javax/sql/RowSet.java ! src/share/classes/javax/sql/rowset/BaseRowSet.java ! src/share/classes/javax/sql/rowset/CachedRowSet.java ! src/share/classes/javax/sql/rowset/FilteredRowSet.java ! src/share/classes/javax/sql/rowset/JdbcRowSet.java ! src/share/classes/javax/sql/rowset/JoinRowSet.java ! src/share/classes/javax/sql/rowset/Joinable.java ! src/share/classes/javax/sql/rowset/Predicate.java ! src/share/classes/javax/sql/rowset/WebRowSet.java ! src/share/classes/javax/sql/rowset/spi/SyncFactory.java ! src/share/classes/javax/sql/rowset/spi/SyncProvider.java ! src/share/classes/javax/sql/rowset/spi/SyncResolver.java Changeset: 3735d81552a7 Author: mchung Date: 2013-10-17 13:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3735d81552a7 8015912: jdeps support to output in dot file format 8026255: Switch jdeps to follow traditional Java option style Reviewed-by: alanb ! test/sun/reflect/CallerSensitive/CallerSensitiveFinder.java Changeset: c1af85c48819 Author: mduigou Date: 2013-10-17 12:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c1af85c48819 8004138: ForkJoinTask leaks exceptions Reviewed-by: chegar, mduigou, psandoz, martin Contributed-by: Doug Lea
! src/share/classes/java/util/concurrent/ForkJoinTask.java + test/java/util/concurrent/forkjoin/FJExceptionTableLeak.java Changeset: e76bb2436b04 Author: bpb Date: 2013-10-17 15:05 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e76bb2436b04 8026832: Clean up straggling doclint warnings in java.math Summary: Fix empty paragraph tag warnings. Reviewed-by: lancea ! src/share/classes/java/math/BigDecimal.java ! src/share/classes/java/math/RoundingMode.java Changeset: 28191d3ff921 Author: erikj Date: 2013-10-09 16:22 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/28191d3ff921 8026144: Missing mkdir in Images.gmk Reviewed-by: tbell ! makefiles/Images.gmk Changeset: 86df2e879eca Author: tbell Date: 2013-10-09 18:50 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/86df2e879eca 8023611: Win32 and win64: Remove all the WARNINGS in JDK 8 builds for Windows 2008 and MSVS 2010 SP1 Reviewed-by: erikj ! make/common/shared/Compiler-msvc.gmk ! make/common/shared/Defs-versions.gmk ! make/common/shared/Sanity.gmk Changeset: 98d98ec01f07 Author: tbell Date: 2013-10-09 23:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/98d98ec01f07 Merge Changeset: 9c60860b1812 Author: ihse Date: 2013-10-10 15:06 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9c60860b1812 8001931: The new build system whitespace cleanup Reviewed-by: tbell, simonis, erikj ! makefiles/BuildJdk.gmk ! makefiles/Bundles.gmk ! makefiles/CompileDemos.gmk ! makefiles/CompileJavaClasses.gmk ! makefiles/CompileLaunchers.gmk ! makefiles/CompileNativeLibraries.gmk ! makefiles/CopyFiles.gmk ! makefiles/CopyIntoClasses.gmk ! makefiles/CopySamples.gmk ! makefiles/CreateJars.gmk ! makefiles/GendataBreakIterator.gmk ! makefiles/GendataFontConfig.gmk ! makefiles/GendataHtml32dtd.gmk ! makefiles/GendataTZDB.gmk ! makefiles/GendataTimeZone.gmk ! makefiles/GenerateClasses.gmk ! makefiles/GenerateData.gmk ! makefiles/GenerateJavaSources.gmk ! makefiles/GensrcBuffer.gmk ! makefiles/GensrcCLDR.gmk ! makefiles/GensrcCharacterData.gmk ! makefiles/GensrcCharsetCoder.gmk ! makefiles/GensrcCharsetMapping.gmk ! makefiles/GensrcExceptions.gmk ! makefiles/GensrcIcons.gmk ! makefiles/GensrcJDWP.gmk ! makefiles/GensrcJObjC.gmk ! makefiles/GensrcLocaleDataMetaInfo.gmk ! makefiles/GensrcMisc.gmk ! makefiles/GensrcProperties.gmk ! makefiles/GensrcSwing.gmk ! makefiles/GensrcX11Wrappers.gmk ! makefiles/Images.gmk ! makefiles/Import.gmk ! makefiles/Makefile ! makefiles/PatchList.solaris ! makefiles/ProfileNames.gmk ! makefiles/Profiles.gmk ! makefiles/Setup.gmk ! makefiles/SignJars.gmk ! makefiles/Tools.gmk ! makefiles/jpda/jdwp/jdwp.spec ! makefiles/jprt.gmk ! makefiles/jprt.properties ! makefiles/mapfiles/libawt/mapfile-mawt-vers ! makefiles/mapfiles/libawt/mapfile-vers ! makefiles/mapfiles/libawt/mapfile-vers-linux ! makefiles/mapfiles/libawt_headless/mapfile-vers ! makefiles/mapfiles/libawt_xawt/mapfile-vers ! makefiles/mapfiles/libfontmanager/mapfile-vers ! makefiles/mapfiles/libfontmanager/mapfile-vers.openjdk ! makefiles/mapfiles/libj2pcsc/mapfile-vers ! makefiles/mapfiles/libjdga/mapfile-vers ! makefiles/mapfiles/libjli/mapfile-vers ! makefiles/mapfiles/libverify/mapfile-vers ! makefiles/profile-includes.txt ! makefiles/profile-rtjar-includes.txt ! makefiles/scripts/addNotices.sh ! makefiles/scripts/genCharsetProvider.sh ! makefiles/scripts/genExceptions.sh ! makefiles/scripts/localelist.sh ! makefiles/sun/awt/ToBin.java Changeset: cf3ee0e2c1a5 Author: erikj Date: 2013-10-14 11:36 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cf3ee0e2c1a5 8025612: rt.jar still has old specification value in the manifest Reviewed-by: alanb, dholmes, tbell, wetmore ! make/tools/manifest.mf Changeset: 986acae7efe9 Author: ihse Date: 2013-10-15 13:06 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/986acae7efe9 8001933: Move Gensrc*.gmk and Gendata*.gmk into separate directories. Reviewed-by: erikj, tbell ! makefiles/BuildJdk.gmk ! makefiles/CreateJars.gmk - makefiles/GendataBreakIterator.gmk - makefiles/GendataFontConfig.gmk - makefiles/GendataHtml32dtd.gmk - makefiles/GendataTZDB.gmk - makefiles/GendataTimeZone.gmk ! makefiles/GenerateData.gmk - makefiles/GenerateJavaSources.gmk + makefiles/GenerateSources.gmk - makefiles/GensrcBuffer.gmk - makefiles/GensrcCLDR.gmk - makefiles/GensrcCharacterData.gmk - makefiles/GensrcCharsetCoder.gmk - makefiles/GensrcCharsetMapping.gmk - makefiles/GensrcExceptions.gmk - makefiles/GensrcIcons.gmk - makefiles/GensrcJDWP.gmk - makefiles/GensrcJObjC.gmk - makefiles/GensrcLocaleDataMetaInfo.gmk - makefiles/GensrcMisc.gmk - makefiles/GensrcProperties.gmk - makefiles/GensrcSwing.gmk - makefiles/GensrcX11Wrappers.gmk + makefiles/gendata/GendataBreakIterator.gmk + makefiles/gendata/GendataFontConfig.gmk + makefiles/gendata/GendataHtml32dtd.gmk + makefiles/gendata/GendataTZDB.gmk + makefiles/gendata/GendataTimeZone.gmk + makefiles/gensrc/GensrcBuffer.gmk + makefiles/gensrc/GensrcCLDR.gmk + makefiles/gensrc/GensrcCharacterData.gmk + makefiles/gensrc/GensrcCharsetCoder.gmk + makefiles/gensrc/GensrcCharsetMapping.gmk + makefiles/gensrc/GensrcExceptions.gmk + makefiles/gensrc/GensrcIcons.gmk + makefiles/gensrc/GensrcJDWP.gmk + makefiles/gensrc/GensrcJObjC.gmk + makefiles/gensrc/GensrcLocaleDataMetaInfo.gmk + makefiles/gensrc/GensrcMisc.gmk + makefiles/gensrc/GensrcProperties.gmk + makefiles/gensrc/GensrcSwing.gmk + makefiles/gensrc/GensrcX11Wrappers.gmk Changeset: eef656e1bdeb Author: ksrini Date: 2013-10-16 07:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/eef656e1bdeb 8026500: [infra] remove extraneous docs in solaris images Reviewed-by: erikj, mchung, tbell ! makefiles/Images.gmk - src/solaris/doc/sun/man/man1/ja/javaws.1 - src/solaris/doc/sun/man/man1/javaws.1 Changeset: f002f5f3a16c Author: katleman Date: 2013-10-16 12:02 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f002f5f3a16c Merge ! makefiles/CompileJavaClasses.gmk ! makefiles/CreateJars.gmk - makefiles/GendataBreakIterator.gmk - makefiles/GendataFontConfig.gmk - makefiles/GendataHtml32dtd.gmk - makefiles/GendataTZDB.gmk - makefiles/GendataTimeZone.gmk - makefiles/GenerateJavaSources.gmk - makefiles/GensrcBuffer.gmk - makefiles/GensrcCLDR.gmk - makefiles/GensrcCharacterData.gmk - makefiles/GensrcCharsetCoder.gmk - makefiles/GensrcCharsetMapping.gmk - makefiles/GensrcExceptions.gmk - makefiles/GensrcIcons.gmk - makefiles/GensrcJDWP.gmk - makefiles/GensrcJObjC.gmk - makefiles/GensrcLocaleDataMetaInfo.gmk - makefiles/GensrcMisc.gmk - makefiles/GensrcProperties.gmk - makefiles/GensrcSwing.gmk - makefiles/GensrcX11Wrappers.gmk ! makefiles/Profiles.gmk ! makefiles/profile-includes.txt - src/solaris/doc/sun/man/man1/ja/javaws.1 - src/solaris/doc/sun/man/man1/javaws.1 Changeset: bef8f6d429de Author: cl Date: 2013-10-17 09:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bef8f6d429de Added tag jdk8-b112 for changeset f002f5f3a16c ! .hgtags Changeset: 187d5ccb5b18 Author: lana Date: 2013-10-17 15:04 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/187d5ccb5b18 Merge ! makefiles/CompileJavaClasses.gmk ! makefiles/CompileLaunchers.gmk ! makefiles/CompileNativeLibraries.gmk ! makefiles/CopyFiles.gmk ! makefiles/CreateJars.gmk - makefiles/GendataBreakIterator.gmk - makefiles/GendataFontConfig.gmk - makefiles/GendataHtml32dtd.gmk - makefiles/GendataTZDB.gmk - makefiles/GendataTimeZone.gmk ! makefiles/GenerateClasses.gmk - makefiles/GenerateJavaSources.gmk - makefiles/GensrcBuffer.gmk - makefiles/GensrcCLDR.gmk - makefiles/GensrcCharacterData.gmk - makefiles/GensrcCharsetCoder.gmk - makefiles/GensrcCharsetMapping.gmk - makefiles/GensrcExceptions.gmk - makefiles/GensrcIcons.gmk - makefiles/GensrcJDWP.gmk - makefiles/GensrcJObjC.gmk - makefiles/GensrcLocaleDataMetaInfo.gmk - makefiles/GensrcMisc.gmk - makefiles/GensrcProperties.gmk - makefiles/GensrcSwing.gmk - makefiles/GensrcX11Wrappers.gmk ! makefiles/Images.gmk ! makefiles/Setup.gmk ! makefiles/Tools.gmk + makefiles/gendata/GendataBreakIterator.gmk ! makefiles/profile-includes.txt - src/solaris/doc/sun/man/man1/ja/javaws.1 - src/solaris/doc/sun/man/man1/javaws.1 Changeset: b73fb7920645 Author: lana Date: 2013-10-17 15:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b73fb7920645 Merge - makefiles/GendataBreakIterator.gmk - makefiles/GendataFontConfig.gmk - makefiles/GendataHtml32dtd.gmk - makefiles/GendataTZDB.gmk - makefiles/GendataTimeZone.gmk - makefiles/GenerateJavaSources.gmk - makefiles/GensrcBuffer.gmk - makefiles/GensrcCLDR.gmk - makefiles/GensrcCharacterData.gmk - makefiles/GensrcCharsetCoder.gmk - makefiles/GensrcCharsetMapping.gmk - makefiles/GensrcExceptions.gmk - makefiles/GensrcIcons.gmk - makefiles/GensrcJDWP.gmk - makefiles/GensrcJObjC.gmk - makefiles/GensrcLocaleDataMetaInfo.gmk - makefiles/GensrcMisc.gmk - makefiles/GensrcProperties.gmk - makefiles/GensrcSwing.gmk - makefiles/GensrcX11Wrappers.gmk - src/solaris/doc/sun/man/man1/ja/javaws.1 - src/solaris/doc/sun/man/man1/javaws.1 Changeset: c1616a944d1c Author: weijun Date: 2013-10-18 08:57 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c1616a944d1c 7025699: Policy Tool is not accessible by keyboard Reviewed-by: alexp, weijun Contributed-by: Leif Samuelsson ! src/share/classes/sun/security/tools/policytool/PolicyTool.java ! src/share/classes/sun/security/tools/policytool/Resources.java ! test/sun/security/tools/policytool/Alias.html ! test/sun/security/tools/policytool/OpenPolicy.html ! test/sun/security/tools/policytool/UpdatePermissions.html Changeset: 042a473535aa Author: mchung Date: 2013-10-17 19:47 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/042a473535aa 8025799: Restore sun.reflect.Reflection.getCallerClass(int) until a replacement API is provided Reviewed-by: alanb, forax, dholmes, twisti ! makefiles/mapfiles/libjava/mapfile-vers ! makefiles/mapfiles/libjava/reorder-sparc ! makefiles/mapfiles/libjava/reorder-sparcv9 ! makefiles/mapfiles/libjava/reorder-x86 ! src/share/classes/sun/reflect/Reflection.java ! src/share/javavm/export/jvm.h ! src/share/native/sun/reflect/Reflection.c + test/sun/reflect/Reflection/GetCallerClassWithDepth.java Changeset: 8a7b1b615100 Author: darcy Date: 2013-10-17 22:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8a7b1b615100 8026840: Fix new doclint issues in javax.naming Reviewed-by: mchung ! src/share/classes/javax/naming/CompositeName.java ! src/share/classes/javax/naming/CompoundName.java ! src/share/classes/javax/naming/Context.java ! src/share/classes/javax/naming/InitialContext.java ! src/share/classes/javax/naming/ReferralException.java ! src/share/classes/javax/naming/directory/DirContext.java ! src/share/classes/javax/naming/event/EventContext.java ! src/share/classes/javax/naming/ldap/LdapContext.java ! src/share/classes/javax/naming/ldap/Rdn.java Changeset: 658e121bda42 Author: sherman Date: 2013-10-17 23:43 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/658e121bda42 8025971: Remove ZoneId.OLD_SHORT_IDS 8026197: Slow reading tzdb.dat if the JRE is on a high-latency, remote file system Summary: removed the compatiblity old short-ids mapping Reviewed-by: okutsu ! src/share/classes/java/time/ZoneId.java ! src/share/classes/java/time/zone/TzdbZoneRulesProvider.java ! src/share/classes/java/util/TimeZone.java ! src/share/classes/sun/util/calendar/ZoneInfoFile.java ! test/java/time/tck/java/time/TCKZoneId.java ! test/java/util/Calendar/JavatimeTest.java Changeset: 8479a48d9fd4 Author: sla Date: 2013-10-18 11:52 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8479a48d9fd4 8021897: EXCEPTION_ACCESS_VIOLATION on debugging String.contentEquals() Reviewed-by: alanb, sspitsyn ! src/share/back/outStream.c + test/com/sun/jdi/GetUninitializedStringValue.java Changeset: da695008417f Author: alanb Date: 2013-10-18 13:45 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/da695008417f 8026859: (fs) test/java/nio/file/Files/StreamTest.java fails to compile intermittently Reviewed-by: psandoz ! test/java/nio/file/Files/StreamTest.java Changeset: 4e065f5b4a16 Author: igerasim Date: 2013-10-18 16:06 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4e065f5b4a16 8026756: Test java/util/zip/GZIP/GZIPInZip.java failed Reviewed-by: alanb ! test/java/util/zip/GZIP/GZIPInZip.java Changeset: 329cf77821e8 Author: alanb Date: 2013-10-18 13:51 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/329cf77821e8 7050570: (fs) FileSysteProvider fails to initializes if run with file.encoding set to Cp037 Reviewed-by: sherman, ulfzibis ! src/share/classes/sun/nio/fs/Util.java ! src/solaris/classes/sun/nio/fs/GnomeFileTypeDetector.java ! src/solaris/classes/sun/nio/fs/LinuxDosFileAttributeView.java ! src/solaris/classes/sun/nio/fs/LinuxFileStore.java ! src/solaris/classes/sun/nio/fs/LinuxFileSystem.java ! src/solaris/classes/sun/nio/fs/LinuxUserDefinedFileAttributeView.java ! src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java ! src/solaris/classes/sun/nio/fs/UnixException.java ! src/solaris/classes/sun/nio/fs/UnixFileStore.java ! src/solaris/classes/sun/nio/fs/UnixFileSystem.java ! src/solaris/classes/sun/nio/fs/UnixMountEntry.java ! src/solaris/classes/sun/nio/fs/UnixNativeDispatcher.java ! src/solaris/classes/sun/nio/fs/UnixPath.java ! src/solaris/classes/sun/nio/fs/UnixUserPrincipals.java Changeset: 4161f17dfe2b Author: sjiang Date: 2013-10-18 16:15 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4161f17dfe2b 8026028: [findbugs] findbugs report some issue in com.sun.jmx.snmp package Reviewed-by: psandoz, dfuchs ! src/share/classes/com/sun/jmx/snmp/SnmpString.java ! src/share/classes/com/sun/jmx/snmp/agent/SnmpMib.java ! src/share/classes/com/sun/jmx/snmp/daemon/CommunicatorServer.java + test/com/sun/jmx/snmp/NoInfoLeakTest.java Changeset: 602aa6fa46c6 Author: alanb Date: 2013-10-18 15:51 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/602aa6fa46c6 8026876: (fs) Build issue with src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java Reviewed-by: psandoz ! src/solaris/classes/sun/nio/fs/SolarisUserDefinedFileAttributeView.java Changeset: 93f4f012deaf Author: alanb Date: 2013-10-18 16:01 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/93f4f012deaf Merge Changeset: 8d1d5a5aeb41 Author: robm Date: 2013-10-18 16:28 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8d1d5a5aeb41 8024660: TEST_BUG: java/lang/ProcessBuilder/*IOHandle.java leaving hotspot.log open in fastdebug builds Reviewed-by: alanb Contributed-by: pavel.punegov at oracle.com ! test/java/lang/ProcessBuilder/InheritIOEHandle.java ! test/java/lang/ProcessBuilder/SiblingIOEHandle.java Changeset: 88436832cfd0 Author: dsamersoff Date: 2013-10-19 00:05 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/88436832cfd0 8004213: JDP packet needs pid, broadcast interval and rmi server hostname fields Summary: Add some extra fileds to jdp packet Reviewed-by: allwin, sla, hirt ! src/share/classes/sun/management/jdp/JdpController.java ! src/share/classes/sun/management/jdp/JdpJmxPacket.java ! test/sun/management/jdp/JdpClient.java ! test/sun/management/jdp/JdpDoSomething.java ! test/sun/management/jdp/JdpTest.sh Changeset: 7a947daa8f51 Author: rriggs Date: 2013-10-18 16:37 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7a947daa8f51 8025828: Late binding of Chronology to appendValueReduced Summary: Add a listener to the parseContext called when the Chronology changes Reviewed-by: sherman ! src/share/classes/java/time/format/DateTimeFormatterBuilder.java ! src/share/classes/java/time/format/DateTimeParseContext.java ! test/java/time/test/java/time/format/TestReducedParser.java Changeset: fbb7510f788d Author: vromero Date: 2013-10-19 17:53 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fbb7510f788d 8026854: java.time.temporal.TemporalQueries doesn't compile after javac modification to lambda flow analysis Reviewed-by: psandoz ! src/share/classes/java/time/temporal/TemporalQueries.java Changeset: 392acefef659 Author: dsamersoff Date: 2013-10-19 20:59 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/392acefef659 8024071: In ManagementAgent.start it should be possible to set the jdp.name parameter. Summary: Pass one more property from Agent to JdpController Reviewed-by: jbachorik, sla ! src/share/classes/sun/management/Agent.java ! test/sun/management/jdp/JdpTest.sh ! test/sun/management/jmxremote/startstop/JMXStartStopTest.sh Changeset: ede89a97e80a Author: ksrini Date: 2013-10-19 15:19 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ede89a97e80a 8026794: Test tools/pack200/TimeStamp.java fails while opening golden.jar.native.IST on linux-ppc(v2) Reviewed-by: dholmes ! src/share/native/com/sun/java/util/jar/pack/zip.cpp Changeset: 71ecbde5e5e4 Author: rfield Date: 2013-10-20 18:07 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/71ecbde5e5e4 8025631: Enhance Lambda construction Reviewed-by: ksrini, ahgross ! src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java - src/share/classes/java/lang/invoke/MagicLambdaImpl.java Changeset: 30c46debdf0f Author: jbachorik Date: 2013-10-21 10:40 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/30c46debdf0f 7197919: java/lang/management/ThreadMXBean/ThreadBlockedCount.java has concurency issues Reviewed-by: sla, mchung ! test/java/lang/management/ThreadMXBean/ThreadBlockedCount.java Changeset: d8694ad1ed2d Author: jbachorik Date: 2013-10-21 10:54 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d8694ad1ed2d 8024613: javax/management/remote/mandatory/connection/RMIConnector_NPETest.java failing intermittently Summary: RMID needs a varying amount of time to start its socket server. We need to cater for it. Reviewed-by: sjiang, dfuchs, sla ! test/javax/management/remote/mandatory/connection/RMIConnector_NPETest.java Changeset: 567d47fd3fe2 Author: dfuchs Date: 2013-10-21 11:15 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/567d47fd3fe2 8016344: (props) Properties.storeToXML behaviour has changed from JDK 6 to 7 Summary: When storing Properties to XML only locally defined properties must be saved. Reviewed-by: psandoz, mchung, alanb ! src/share/classes/jdk/internal/util/xml/PropertiesDefaultHandler.java ! src/share/classes/sun/util/xml/PlatformXmlPropertiesProvider.java + test/java/util/Properties/LoadAndStoreXMLWithDefaults.java Changeset: c81125493ca6 Author: dfuchs Date: 2013-10-21 12:00 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c81125493ca6 8026499: Root Logger level can be reset unexpectedly Summary: This fix prevents the logger's level to be re-initialized if it has already been initialized. Reviewed-by: mchung ! src/share/classes/java/util/logging/LogManager.java ! src/share/classes/java/util/logging/Logger.java + test/java/util/logging/LogManager/RootLogger/setLevel/TestRootLoggerLevel.java Changeset: 698baf22e081 Author: jbachorik Date: 2013-10-21 13:57 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/698baf22e081 7140929: NotSerializableNotifTest.java fails intermittently Reviewed-by: sjiang, alanb ! test/javax/management/remote/mandatory/notif/NotSerializableNotifTest.java Changeset: f0c18a5e3ae5 Author: sherman Date: 2013-10-21 11:16 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f0c18a5e3ae5 8026842: Remove Time-Zone IDs HST/EST/MST Summary: removed these ids from ZoneId's zid list, supported via short_ids list Reviewed-by: okutsu ! make/tools/src/build/tools/tzdb/TzdbZoneRulesCompiler.java ! src/share/classes/sun/util/calendar/ZoneInfoFile.java ! test/java/time/test/java/time/format/TestZoneTextPrinterParser.java Changeset: c1700125d041 Author: darcy Date: 2013-10-21 12:52 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c1700125d041 8022658: Revisit FunctionalInterface on some core libs types Reviewed-by: briangoetz, mduigou, mr ! src/share/classes/java/io/Closeable.java ! src/share/classes/java/io/Flushable.java ! src/share/classes/java/lang/AutoCloseable.java ! src/share/classes/java/lang/Comparable.java ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/lang/Readable.java Changeset: e8683d5b2b0a Author: peytoia Date: 2013-10-22 06:13 +0900 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e8683d5b2b0a 8020037: String.toLowerCase incorrectly increases length, if string contains \u0130 char Reviewed-by: naoto ! src/share/classes/java/lang/ConditionalSpecialCasing.java ! src/share/classes/java/lang/String.java ! test/java/lang/String/ToLowerCase.java Changeset: 3b00bf85a6f5 Author: sherman Date: 2013-10-21 18:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3b00bf85a6f5 8008386: (cs) Unmappable leading should be decoded to replacement. Summary: updated the unmappable/malformed detecting handling for db charsets Reviewed-by: naoto ! src/share/classes/sun/nio/cs/ext/DoubleByte.java ! test/sun/nio/cs/TestIBMBugs.java + test/sun/nio/cs/TestUnmappable.java Changeset: f581b72e3715 Author: sla Date: 2013-10-21 23:32 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f581b72e3715 8025238: nsk/jvmti/scenarios/bcinstr/BI04/bi04t002 crashed with SIGSEGV Summary: Redefined class in stack trace may not be found by method_idnum so handle null. Reviewed-by: coleenp, dcubed, sspitsyn ! test/java/lang/instrument/RedefineMethodInBacktrace.sh ! test/java/lang/instrument/RedefineMethodInBacktraceApp.java + test/java/lang/instrument/RedefineMethodInBacktraceTargetB.java + test/java/lang/instrument/RedefineMethodInBacktraceTargetB_2.java Changeset: 975e3a89814e Author: darcy Date: 2013-10-21 13:36 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/975e3a89814e 8024603: Turn on javac lint checking for auxiliaryclass, empty, and try in jdk build Reviewed-by: erikj, ihse, chegar ! makefiles/Setup.gmk Changeset: f443d9b863cf Author: juh Date: 2013-10-21 22:05 +0000 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f443d9b863cf Merge Changeset: d0882a1deeb5 Author: juh Date: 2013-10-22 03:49 +0000 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d0882a1deeb5 Merge Changeset: 04ba97b7c2f9 Author: jfranck Date: 2013-10-22 10:34 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/04ba97b7c2f9 8009411: (reflect) Class.getMethods should not include static methods from interfaces Summary: Update getMethods() and getMethod() to filter out interface statics Reviewed-by: darcy Contributed-by: joel.franck at oracle.com, andreas.lundblad at oracle.com, amy.lu at oracle.com, peter.levart at gmail.com ! src/share/classes/java/lang/Class.java ! test/java/lang/reflect/DefaultStaticTest/DefaultStaticInvokeTest.java ! test/java/lang/reflect/DefaultStaticTest/DefaultStaticTestData.java + test/java/lang/reflect/Method/InterfaceStatic/StaticInterfaceMethodInWayOfDefault.java Changeset: bb2fb6be8b2a Author: ykantser Date: 2013-10-22 10:57 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/bb2fb6be8b2a 8026962: Put java/lang/management/ClassLoadingMXBean/LoadCounts.java into ProblemList.txt Reviewed-by: sla, jbachorik ! test/ProblemList.txt Changeset: b07856d0de34 Author: alundblad Date: 2013-10-22 12:35 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b07856d0de34 8004912: Repeating annotations - getAnnotationsByType(Class) is not working as expected for few inheritance scenarios 8019420: Repeatable non-inheritable annotation types are mishandled by Core Reflection Reviewed-by: jfranck ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/reflect/Executable.java ! src/share/classes/java/lang/reflect/Field.java ! src/share/classes/java/lang/reflect/Parameter.java ! src/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java ! src/share/classes/sun/reflect/annotation/AnnotationSupport.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java + test/java/lang/annotation/repeatingAnnotations/NonInheritableContainee.java + test/java/lang/annotation/repeatingAnnotations/OrderUnitTest.java ! test/java/lang/annotation/repeatingAnnotations/RepeatedUnitTest.java Changeset: 6f9515a9519f Author: alanb Date: 2013-10-22 11:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6f9515a9519f 8021257: com.sun.corba.se.** should be on restricted package list Reviewed-by: chegar, coffeys, smarks, mullan Contributed-by: alan.bateman at oralce.com, mark.sheppard at oracle.com ! src/share/lib/security/java.security-linux ! src/share/lib/security/java.security-macosx ! src/share/lib/security/java.security-solaris ! src/share/lib/security/java.security-windows ! test/java/lang/SecurityManager/CheckPackageAccess.java Changeset: f15ad52cffed Author: alanb Date: 2013-10-22 12:04 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f15ad52cffed 8024833: (fc) FileChannel.map does not handle async close/interrupt correctly Reviewed-by: alanb Contributed-by: chris.w.dennis at gmail.com ! src/share/classes/sun/nio/ch/FileChannelImpl.java + test/java/nio/channels/FileChannel/InterruptMapDeadlock.java Changeset: 6a1989dc302d Author: igerasim Date: 2013-10-15 18:41 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/6a1989dc302d 8023390: Test java/net/NetworkInterface/MemLeakTest.java failed with the latest jdk8 build Summary: Removing the test as it is unreliable and fails intermittently Reviewed-by: chegar - test/java/net/NetworkInterface/MemLeakTest.java Changeset: 7cafbb397683 Author: chegar Date: 2013-10-22 14:00 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7cafbb397683 8017779: java/net/Authenticator/B4769350.java fails Reviewed-by: chegar Contributed-by: Tristan Yan , Kurchi Subhra Hazra ! test/java/net/Authenticator/B4769350.java Changeset: 5f4aecd73caa Author: mullan Date: 2013-10-22 08:03 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5f4aecd73caa 8021191: Add isAuthorized check to limited doPrivileged methods Reviewed-by: weijun, xuelei ! src/share/classes/java/security/AccessControlContext.java ! src/share/classes/java/security/AccessController.java Changeset: 948b390b6952 Author: mullan Date: 2013-10-22 08:17 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/948b390b6952 Merge - make/sun/awt/FILES_c_macosx.gmk - make/sun/awt/FILES_export_macosx.gmk - makefiles/GendataBreakIterator.gmk - makefiles/GendataFontConfig.gmk - makefiles/GendataHtml32dtd.gmk - makefiles/GendataTZDB.gmk - makefiles/GendataTimeZone.gmk - makefiles/GenerateJavaSources.gmk - makefiles/GensrcBuffer.gmk - makefiles/GensrcCLDR.gmk - makefiles/GensrcCharacterData.gmk - makefiles/GensrcCharsetCoder.gmk - makefiles/GensrcCharsetMapping.gmk - makefiles/GensrcExceptions.gmk - makefiles/GensrcIcons.gmk - makefiles/GensrcJDWP.gmk - makefiles/GensrcJObjC.gmk - makefiles/GensrcLocaleDataMetaInfo.gmk - makefiles/GensrcMisc.gmk - makefiles/GensrcProperties.gmk - makefiles/GensrcSwing.gmk - makefiles/GensrcX11Wrappers.gmk - src/macosx/classes/com/apple/resources/MacOSXResourceBundle.java - src/macosx/native/com/apple/resources/MacOSXResourceBundle.m - src/share/classes/java/lang/invoke/MagicLambdaImpl.java - src/share/classes/java/net/HttpURLPermission.java - src/solaris/doc/sun/man/man1/ja/javaws.1 - src/solaris/doc/sun/man/man1/javaws.1 - test/java/net/HttpURLPermission/HttpURLPermissionTest.java - test/java/net/HttpURLPermission/URLTest.java - test/java/net/HttpURLPermission/policy.1 - test/java/net/HttpURLPermission/policy.2 - test/java/net/HttpURLPermission/policy.3 Changeset: 3ea9af449b36 Author: mullan Date: 2013-10-22 09:06 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3ea9af449b36 Merge - test/java/net/NetworkInterface/MemLeakTest.java Changeset: 54869853c06c Author: alanb Date: 2013-10-22 14:13 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/54869853c06c 7074436: (sc) SocketChannel can do short gathering writes when channel configured blocking (win) Reviewed-by: chegar ! src/windows/native/sun/nio/ch/SocketDispatcher.c ! test/java/nio/channels/SocketChannel/ShortWrite.java Changeset: 9758edb6976f Author: bpb Date: 2013-10-22 10:44 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9758edb6976f 8026806: Incomplete test of getaddrinfo() return value could lead to incorrect exception for Windows Inet 6 Summary: Check getaddrinfo return value before calling WSAGetLastError. Reviewed-by: alanb, dsamersoff ! src/windows/native/java/net/Inet6AddressImpl.c Changeset: 23b124cbf242 Author: drchase Date: 2013-10-22 12:57 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/23b124cbf242 8026818: Defmeth failures with -mode invoke Summary: Added test for IllegalAccessException -> IllegalAccessError path to check if root cause was AbstractMethodError Reviewed-by: jrose ! src/share/classes/java/lang/invoke/MethodHandleNatives.java Changeset: 72c0f289a8cb Author: kizune Date: 2013-10-22 22:18 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/72c0f289a8cb 8026873: tools/launcher/VersionCheck.java fails in jprt because of jmc.ini Reviewed-by: ksrini ! test/tools/launcher/VersionCheck.java Changeset: 2be08cdd1ced Author: bpb Date: 2013-10-22 11:25 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2be08cdd1ced 7179567: JCK8 tests: api/java_net/URLClassLoader/index.html#Ctor3 failed with NPE 6445180: URLClassLoader does not describe the behavior of several methods with respect to null arguments Summary: Document when a NPE will be thrown by URLClassLoader constructors, newInstance(), findClass(), and getPermissions(). Reviewed-by: alanb, mduigou, chegar, dholmes, jrose ! src/share/classes/java/net/URLClassLoader.java ! src/share/classes/javax/management/remote/rmi/NoCallStackClassLoader.java ! src/share/classes/sun/applet/AppletClassLoader.java + test/java/net/URLClassLoader/NullURLTest.java Changeset: c956a5d0618f Author: juh Date: 2013-10-22 11:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c956a5d0618f 8025287: NPE in api/java_security/cert/PKIXRevocationChecker/GeneralTests_GeneralTests Reviewed-by: mullan ! src/share/classes/sun/security/provider/certpath/RevocationChecker.java ! test/java/security/cert/PKIXRevocationChecker/UnitTest.java Changeset: 9a32af82bd1e Author: darcy Date: 2013-10-22 12:04 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9a32af82bd1e 8027062: Fix lint and doclint issues in java.lang.{ClassLoader, ClassValue, SecurityManager} Reviewed-by: chegar, forax, alanb, mduigou ! src/share/classes/java/lang/ClassLoader.java ! src/share/classes/java/lang/ClassValue.java ! src/share/classes/java/lang/SecurityManager.java Changeset: e2b814e68956 Author: rriggs Date: 2013-10-22 15:03 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e2b814e68956 8024686: Cleanup of java.time serialization source Summary: optimize serialized form of OffsetTime, OffsetDateTime; correct order of modifiers Reviewed-by: sherman ! src/share/classes/java/time/Duration.java ! src/share/classes/java/time/OffsetDateTime.java ! src/share/classes/java/time/OffsetTime.java ! src/share/classes/java/time/Period.java ! src/share/classes/java/time/chrono/ChronoPeriodImpl.java ! src/share/classes/java/time/chrono/JapaneseDate.java ! src/share/classes/java/time/temporal/WeekFields.java ! src/share/classes/java/time/zone/Ser.java ! src/share/classes/java/time/zone/ZoneOffsetTransition.java ! test/java/time/tck/java/time/serial/TCKOffsetDateTimeSerialization.java ! test/java/time/tck/java/time/serial/TCKOffsetTimeSerialization.java Changeset: d5c2b125ed0f Author: rriggs Date: 2013-10-22 15:06 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d5c2b125ed0f Merge Changeset: cd60848c87b2 Author: rriggs Date: 2013-10-22 15:11 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/cd60848c87b2 Merge Changeset: 4bb758a77fd7 Author: rriggs Date: 2013-10-22 17:02 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/4bb758a77fd7 8026982: javadoc errors in core libs Summary: Cleanup of javadoc -Xlint errors Reviewed-by: lancea, mduigou, darcy, mullan, mchung ! src/share/classes/java/io/ByteArrayInputStream.java ! src/share/classes/java/io/ByteArrayOutputStream.java ! src/share/classes/java/io/DataInput.java ! src/share/classes/java/io/DataOutput.java ! src/share/classes/java/io/FilePermission.java ! src/share/classes/java/io/InputStream.java ! src/share/classes/java/io/ObjectInputStream.java ! src/share/classes/java/io/PipedInputStream.java ! src/share/classes/java/io/PipedReader.java ! src/share/classes/java/io/RandomAccessFile.java ! src/share/classes/java/io/Serializable.java ! src/share/classes/java/io/SerializablePermission.java ! src/share/classes/java/lang/AbstractStringBuilder.java ! src/share/classes/java/lang/ArrayStoreException.java ! src/share/classes/java/lang/Byte.java ! src/share/classes/java/lang/Character.java ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/ClassCastException.java ! src/share/classes/java/lang/Double.java ! src/share/classes/java/lang/Float.java ! src/share/classes/java/lang/Integer.java ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/lang/Long.java ! src/share/classes/java/lang/RuntimePermission.java ! src/share/classes/java/lang/Short.java ! src/share/classes/java/lang/String.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/java/lang/management/ManagementFactory.java ! src/share/classes/java/lang/management/ManagementPermission.java ! src/share/classes/java/lang/management/MemoryUsage.java ! src/share/classes/java/lang/management/package.html ! src/share/classes/java/lang/reflect/ReflectPermission.java ! src/share/classes/java/net/DatagramSocket.java ! src/share/classes/java/net/Inet6Address.java ! src/share/classes/java/net/MulticastSocket.java ! src/share/classes/java/net/NetPermission.java ! src/share/classes/java/net/Proxy.java ! src/share/classes/java/net/Socket.java ! src/share/classes/java/net/SocketOptions.java ! src/share/classes/java/net/SocketPermission.java ! src/share/classes/java/net/URI.java ! src/share/classes/java/net/URLConnection.java ! src/share/classes/java/net/URLDecoder.java ! src/share/classes/java/net/URLEncoder.java ! src/share/classes/java/net/URLPermission.java ! src/share/classes/java/net/package-info.java ! src/share/classes/java/nio/X-Buffer.java.template ! src/share/classes/java/nio/file/FileSystem.java ! src/share/classes/java/rmi/activation/ActivationGroup.java ! src/share/classes/java/rmi/dgc/VMID.java ! src/share/classes/java/rmi/server/UnicastRemoteObject.java ! src/share/classes/java/security/AccessController.java ! src/share/classes/java/security/AlgorithmParameterGenerator.java ! src/share/classes/java/security/BasicPermission.java ! src/share/classes/java/security/CodeSource.java ! src/share/classes/java/security/Key.java ! src/share/classes/java/security/KeyPairGenerator.java ! src/share/classes/java/security/KeyStore.java ! src/share/classes/java/security/MessageDigest.java ! src/share/classes/java/security/Permission.java ! src/share/classes/java/security/PermissionCollection.java ! src/share/classes/java/security/SecurityPermission.java ! src/share/classes/java/security/Signature.java ! src/share/classes/java/security/SignedObject.java ! src/share/classes/java/security/acl/Acl.java ! src/share/classes/java/security/cert/CertificateFactory.java ! src/share/classes/java/security/cert/PKIXRevocationChecker.java ! src/share/classes/java/security/cert/PolicyQualifierInfo.java ! src/share/classes/java/security/cert/TrustAnchor.java ! src/share/classes/java/security/cert/X509CertSelector.java ! src/share/classes/java/security/interfaces/DSAKeyPairGenerator.java ! src/share/classes/java/text/MessageFormat.java ! src/share/classes/java/text/Normalizer.java ! src/share/classes/java/text/SimpleDateFormat.java ! src/share/classes/java/util/Base64.java ! src/share/classes/java/util/BitSet.java ! src/share/classes/java/util/Deque.java ! src/share/classes/java/util/Locale.java ! src/share/classes/java/util/Properties.java ! src/share/classes/java/util/PropertyPermission.java ! src/share/classes/java/util/Queue.java ! src/share/classes/java/util/ResourceBundle.java ! src/share/classes/java/util/Scanner.java ! src/share/classes/java/util/TimeZone.java ! src/share/classes/java/util/UUID.java ! src/share/classes/java/util/concurrent/BlockingDeque.java ! src/share/classes/java/util/concurrent/BlockingQueue.java ! src/share/classes/java/util/concurrent/Future.java ! src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java ! src/share/classes/java/util/jar/Pack200.java ! src/share/classes/java/util/logging/Logger.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/spi/LocaleServiceProvider.java Changeset: e84413f066e0 Author: mfang Date: 2013-10-22 14:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e84413f066e0 8026109: [ja] overtranslation of jarsigner in command line output Reviewed-by: naoto ! src/share/classes/sun/security/tools/jarsigner/Resources_ja.java Changeset: 25ebb8b61371 Author: mfang Date: 2013-10-22 14:36 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/25ebb8b61371 6607048: clear extra l10n resource files in demo Reviewed-by: naoto, yhuang - src/share/demo/jfc/Notepad/resources/Notepad_fr.properties - src/share/demo/jfc/Notepad/resources/Notepad_sv.properties Changeset: f2ddffb4b165 Author: mfang Date: 2013-10-22 14:37 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f2ddffb4b165 Merge Changeset: 9fbf35589211 Author: smarks Date: 2013-10-22 14:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9fbf35589211 8026427: deprecate obsolete APIs from java.rmi Reviewed-by: alanb, dfuchs ! src/share/classes/java/rmi/RMISecurityManager.java ! src/share/classes/java/rmi/activation/ActivationGroup.java ! src/share/classes/java/rmi/server/ServerRef.java ! src/share/classes/java/rmi/server/SocketSecurityException.java Changeset: 0913c3bab168 Author: henryjen Date: 2013-10-22 15:12 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/0913c3bab168 8025909: Lambda Library Spec Updates 8024179: Document limitations and performance characteristics of stream sources and operations 8024138: (Spec clarification) Lambda Metafacory spec should state DMH constraint on implMethod Reviewed-by: mduigou Contributed-by: brian.goetz at oracle.com, paul.sandoz at oracle.com ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/lang/invoke/LambdaMetafactory.java ! src/share/classes/java/lang/invoke/SerializedLambda.java ! src/share/classes/java/util/DoubleSummaryStatistics.java ! src/share/classes/java/util/Iterator.java ! src/share/classes/java/util/List.java ! src/share/classes/java/util/Map.java ! src/share/classes/java/util/PrimitiveIterator.java ! src/share/classes/java/util/Spliterator.java ! src/share/classes/java/util/function/package-info.java ! src/share/classes/java/util/stream/BaseStream.java ! src/share/classes/java/util/stream/Collectors.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Node.java ! src/share/classes/java/util/stream/SpinedBuffer.java ! src/share/classes/java/util/stream/Stream.java ! src/share/classes/java/util/stream/StreamSupport.java ! src/share/classes/java/util/stream/package-info.java Changeset: fc7a6fa3589a Author: ascarpino Date: 2013-10-22 19:37 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/fc7a6fa3589a 8025763: Provider does not override new Hashtable methods Reviewed-by: mullan ! src/share/classes/java/security/Provider.java Changeset: b065de1700d3 Author: mullan Date: 2013-10-22 19:43 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b065de1700d3 Merge - src/share/demo/jfc/Notepad/resources/Notepad_fr.properties - src/share/demo/jfc/Notepad/resources/Notepad_sv.properties Changeset: d545d67e2f68 Author: weijun Date: 2013-10-23 08:32 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d545d67e2f68 8027026: Change keytool -genkeypair to use -keyalg RSA Reviewed-by: alanb, chegar, mullan ! test/ProblemList.txt ! test/java/util/TimeZone/TimeZoneDatePermissionCheck.sh ! test/java/util/jar/JarInputStream/ExtraFileInMetaInf.java ! test/sun/security/pkcs12/PKCS12SameKeyId.java ! test/sun/security/tools/jarsigner/TimestampCheck.java ! test/sun/security/tools/jarsigner/checkusage.sh ! test/sun/security/tools/jarsigner/collator.sh ! test/sun/security/tools/jarsigner/crl.sh ! test/sun/security/tools/jarsigner/jvindex.sh ! test/sun/security/tools/jarsigner/newsize7.sh ! test/sun/security/tools/jarsigner/onlymanifest.sh ! test/sun/security/tools/jarsigner/passtype.sh ! test/sun/security/tools/jarsigner/samename.sh ! test/sun/security/tools/jarsigner/ts.sh ! test/sun/security/tools/keytool/CloseFile.java ! test/sun/security/tools/keytool/ListKeychainStore.sh ! test/sun/security/tools/keytool/StartDateTest.java ! test/sun/security/tools/keytool/UnknownAndUnparseable.java ! test/sun/security/tools/keytool/emptysubject.sh ! test/sun/security/tools/keytool/importreadall.sh ! test/sun/security/tools/keytool/p12importks.sh ! test/sun/security/tools/keytool/readjar.sh ! test/sun/security/tools/keytool/selfissued.sh ! test/sun/security/tools/keytool/trystore.sh ! test/sun/security/validator/certreplace.sh ! test/sun/security/validator/samedn.sh Changeset: c077a2810782 Author: egahlin Date: 2013-10-23 10:50 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c077a2810782 7105883: JDWP: agent crash if there exists a ThreadGroup with null name Reviewed-by: sla, jbachorik ! src/share/back/ThreadGroupReferenceImpl.c + test/com/sun/jdi/NullThreadGroupNameTest.java Changeset: 1b0dfa631b6f Author: michaelm Date: 2013-10-23 11:00 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1b0dfa631b6f 8025734: Use literal IP address where possible in SocketPermission generated by HttpURLPermission Reviewed-by: chegar ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java + test/java/net/URLPermission/nstest/LookupTest.java + test/java/net/URLPermission/nstest/META-INF/services/sun.net.spi.nameservice.NameServiceDescriptor + test/java/net/URLPermission/nstest/SimpleNameService.java + test/java/net/URLPermission/nstest/SimpleNameServiceDescriptor.java + test/java/net/URLPermission/nstest/policy Changeset: f4970c7abe93 Author: jbachorik Date: 2013-10-23 15:03 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f4970c7abe93 7112404: 2 tests in java/lang/management/ManagementFactory fails with G1 because expect non-zero pools Reviewed-by: mchung, sjiang ! test/java/lang/management/ManagementFactory/ProxyTypeMapping.java ! test/java/lang/management/ManagementFactory/ValidateOpenTypes.java Changeset: f120672b91ef Author: chegar Date: 2013-10-23 14:38 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f120672b91ef 8020758: HttpCookie constructor does not throw IAE when name contains a space Reviewed-by: michaelm, msheppar ! src/share/classes/java/net/HttpCookie.java ! test/java/net/CookieHandler/TestHttpCookie.java Changeset: 8c20e9ef8709 Author: sla Date: 2013-10-23 15:55 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8c20e9ef8709 8026789: Update test/java/lang/instrument/Re(transform|define)BigClass.sh test to use NMT for memory leak detection Reviewed-by: dcubed ! test/ProblemList.txt + test/java/lang/instrument/NMTHelper.java ! test/java/lang/instrument/RedefineBigClass.sh ! test/java/lang/instrument/RedefineBigClassApp.java ! test/java/lang/instrument/RetransformBigClass.sh ! test/java/lang/instrument/RetransformBigClassApp.java Changeset: 3cdf6ca3ef47 Author: kizune Date: 2013-10-23 18:35 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3cdf6ca3ef47 8020802: Need an ability to create jar files that are invariant to the pack200 packing/unpacking Reviewed-by: alanb, ksrini ! src/share/classes/sun/tools/jar/Main.java ! src/share/classes/sun/tools/jar/resources/jar.properties + test/tools/jar/normalize/TestNormal.java Changeset: 2af3f5a61322 Author: coffeys Date: 2013-10-23 16:53 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/2af3f5a61322 5036554: unmarshal error on CORBA alias type in CORBA any Reviewed-by: chegar, smarks + test/com/sun/corba/5036554/JavaBug.java + test/com/sun/corba/5036554/README + test/com/sun/corba/5036554/TestCorbaBug.sh + test/com/sun/corba/5036554/bug.idl Changeset: 88acc99132e2 Author: rfield Date: 2013-10-23 11:36 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/88acc99132e2 8027176: Remove redundant jdk/lambda/vm/DefaultMethodsTest.java Reviewed-by: ksrini - test/jdk/lambda/vm/DefaultMethodsTest.java Changeset: ee7f1c78bec7 Author: coffeys Date: 2013-10-23 20:51 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ee7f1c78bec7 8026405: javax/xml/ws/clientjar/TestWsImport.java failing on JDK 8 nightly aurora test runs Reviewed-by: chegar ! test/javax/xml/ws/clientjar/TestWsImport.java Changeset: f4129fcfacdc Author: mduigou Date: 2013-10-23 14:32 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f4129fcfacdc 8024688: further split Map and ConcurrentMap defaults eliminating looping from Map defaults, Map.merge fixes and doc fixes. Reviewed-by: psandoz, dholmes ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/Map.java ! src/share/classes/java/util/concurrent/ConcurrentMap.java ! test/java/util/Map/Defaults.java Changeset: d9d3705a992f Author: rfield Date: 2013-10-23 15:16 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d9d3705a992f 8025868: Several lang/LMBD JCK tests fail with java.lang.BootstrapMethodError Summary: Wildcard marker interfaces can cause duplicate implemented interfaces in generated lambda class Reviewed-by: briangoetz ! src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java + test/java/lang/invoke/lambda/DupIntf.java Changeset: c9562ac9b812 Author: dxu Date: 2013-10-23 22:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c9562ac9b812 7122887: JDK ignores Gnome3 proxy settings Summary: Fix GConf and add to use GProxyResolver to handle network proxy resolution Reviewed-by: chegar ! src/solaris/native/sun/net/spi/DefaultProxySelector.c ! test/java/net/ProxySelector/SystemProxies.java Changeset: e6bc0dca294b Author: sla Date: 2013-10-15 12:53 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e6bc0dca294b 8009681: TEST_BUG: MethodExitReturnValuesTest.java may fail when there are unexpected background threads Reviewed-by: sla, allwin Contributed-by: mikael.auno at oracle.com ! test/com/sun/jdi/MethodEntryExitEvents.java ! test/com/sun/jdi/MethodExitReturnValuesTest.java Changeset: 700d62b8d9cc Author: alanb Date: 2013-10-24 13:24 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/700d62b8d9cc 8026344: j.u.c.a *Adder and *Accumulator extend a package private class that is Serializable Reviewed-by: rriggs, psandoz, chegar Contributed-by: dl at cs.oswego.edu, alan.bateman at oracle.com ! src/share/classes/java/util/concurrent/atomic/DoubleAccumulator.java ! src/share/classes/java/util/concurrent/atomic/DoubleAdder.java ! src/share/classes/java/util/concurrent/atomic/LongAccumulator.java ! src/share/classes/java/util/concurrent/atomic/LongAdder.java + test/java/util/concurrent/atomic/Serial.java Changeset: e2ec05b2ed94 Author: igerasim Date: 2013-10-23 15:37 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e2ec05b2ed94 8024521: (process) Async close issues with Process InputStream Reviewed-by: psandoz, martin, alanb, robm ! src/solaris/classes/java/lang/UNIXProcess.java.bsd ! src/solaris/classes/java/lang/UNIXProcess.java.linux + test/java/lang/Runtime/exec/CloseRace.java Changeset: b8927cbfb893 Author: alundblad Date: 2013-10-24 18:52 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b8927cbfb893 8027170: Annotations declared on super-super-class should be overridden by super-class. Reviewed-by: jfranck Contributed-by: andreas.lundblad at oracle.com, peter.levart at gmail.com ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/System.java ! src/share/classes/sun/misc/JavaLangAccess.java ! src/share/classes/sun/reflect/annotation/AnnotationSupport.java + test/java/lang/annotation/repeatingAnnotations/InheritedAssociatedAnnotations.java Changeset: 808b9ef4f667 Author: smarks Date: 2013-10-24 10:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/808b9ef4f667 8023862: deprecate HTTP proxying from RMI Reviewed-by: mchung ! src/share/classes/java/rmi/server/RMISocketFactory.java ! src/share/classes/java/rmi/server/package.html ! src/share/classes/sun/rmi/transport/proxy/RMIMasterSocketFactory.java + test/sun/rmi/transport/proxy/DisableHttpDefaultValue.java Changeset: 5fa2fd782993 Author: briangoetz Date: 2013-10-24 13:06 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5fa2fd782993 8019646: Clarify javadoc contract of LambdaMetafactory Reviewed-by: briangoetz, rfield Contributed-by: dan.smith at oracle.com ! src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java ! src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java ! src/share/classes/java/lang/invoke/LambdaMetafactory.java Changeset: 93e696ba5923 Author: jfranck Date: 2013-10-24 19:04 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/93e696ba5923 8023651: j.l.r.Constructor.getAnnotatedReceiverType() and j.l.r.Constructor.getAnnotatedReturnType() for inner classes return incorrect result Reviewed-by: darcy ! src/share/classes/java/lang/reflect/Constructor.java ! src/share/classes/java/lang/reflect/Executable.java ! src/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java ! src/share/classes/sun/reflect/annotation/TypeAnnotationParser.java + test/java/lang/annotation/typeAnnotations/ConstructorReceiverTest.java Changeset: 66884b270b44 Author: twisti Date: 2013-10-24 10:52 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/66884b270b44 8026502: java/lang/invoke/MethodHandleConstants.java fails on all platforms Reviewed-by: iveresov, jrose ! src/share/classes/java/lang/invoke/MethodHandles.java Changeset: e7bdb2fcc7bc Author: sherman Date: 2013-10-24 11:12 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e7bdb2fcc7bc 8025003: Base64 should be less strict with padding Summary: updated spec and implementation of mime decoder to be lenient for padding Reviewed-by: alanb ! src/share/classes/java/util/Base64.java ! test/java/util/Base64/Base64GetEncoderTest.java ! test/java/util/Base64/TestBase64.java ! test/java/util/Base64/TestBase64Golden.java Changeset: 05dbf105e70f Author: joehw Date: 2013-10-24 14:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/05dbf105e70f 8004476: XSLT Extension Functions Don't Work in WebStart Reviewed-by: dfuchs, lancea, alanb + test/javax/xml/jaxp/transform/jdk8004476/SecureProcessingTest.xml + test/javax/xml/jaxp/transform/jdk8004476/TestBase.java + test/javax/xml/jaxp/transform/jdk8004476/XPathExFuncTest.java + test/javax/xml/jaxp/transform/jdk8004476/XSLTExFuncTest.java + test/javax/xml/jaxp/transform/jdk8004476/tokenize.xml + test/javax/xml/jaxp/transform/jdk8004476/tokenize.xsl Changeset: e9ec0ca5bab1 Author: weijun Date: 2013-10-25 08:38 +0800 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e9ec0ca5bab1 8026929: remove accelerators from policytool resources Reviewed-by: alexp, weijun Contributed-by: Leif Samuelsson ! src/share/classes/sun/security/tools/policytool/PolicyTool.java ! src/share/classes/sun/security/tools/policytool/Resources.java Changeset: d126301ad372 Author: ewang Date: 2013-10-25 11:01 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/d126301ad372 7079145: Remove java/net/ipv6tests/UdpTest.java from the ProblemList.txt Reviewed-by: alanb, chegar ! test/ProblemList.txt Changeset: 1153022c0a45 Author: jbachorik Date: 2013-10-25 13:01 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1153022c0a45 8004926: sun/management/jmxremote/bootstrap/CustomLauncherTest.sh oftenly times out Summary: Improve reliability by converting the test to Java Reviewed-by: dsamersoff, dholmes ! test/TEST.groups ! test/lib/testlibrary/jdk/testlibrary/ProcessTools.java ! test/lib/testlibrary/jdk/testlibrary/StreamPumper.java + test/sun/management/jmxremote/bootstrap/CustomLauncherTest.java - test/sun/management/jmxremote/bootstrap/CustomLauncherTest.sh + test/sun/management/jmxremote/bootstrap/LocalManagementTest.java - test/sun/management/jmxremote/bootstrap/LocalManagementTest.sh ! test/sun/management/jmxremote/bootstrap/TestApplication.java ! test/sun/management/jmxremote/bootstrap/TestManager.java + test/sun/management/jmxremote/bootstrap/linux-amd64/launcher Changeset: 8ea272253285 Author: smarks Date: 2013-10-25 14:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/8ea272253285 5063500: Formatter spec says "char" is not an integral type 7126305: Wrong Unicode value specified for format conversion character 'd' 8027287: incorrect example in Formatter javadoc Reviewed-by: rriggs, darcy, lancea ! src/share/classes/java/util/Formatter.java Changeset: af4dd45bc7f7 Author: dfuchs Date: 2013-10-28 10:52 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/af4dd45bc7f7 8026863: regression in anonymous Logger.setParent method Summary: restore behaviour of setParent in anonymous logger and clarifies the spec with respect to security permissions. Reviewed-by: mchung, prr ! src/share/classes/java/util/logging/Logger.java + test/java/util/logging/AnonymousLogger/TestAnonymousLogger.java Changeset: 298035466e19 Author: briangoetz Date: 2013-10-28 18:31 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/298035466e19 Merge ! .hgtags ! make/common/shared/Sanity.gmk ! make/docs/Makefile ! make/netbeans/common/java-data-native.ent ! make/netbeans/common/java-data-no-native.ent - make/sun/awt/FILES_c_macosx.gmk - make/sun/awt/FILES_export_macosx.gmk ! makefiles/CompileNativeLibraries.gmk ! makefiles/CreateJars.gmk - makefiles/GendataBreakIterator.gmk - makefiles/GendataFontConfig.gmk - makefiles/GendataHtml32dtd.gmk - makefiles/GendataTZDB.gmk - makefiles/GendataTimeZone.gmk - makefiles/GenerateJavaSources.gmk - makefiles/GensrcBuffer.gmk - makefiles/GensrcCLDR.gmk - makefiles/GensrcCharacterData.gmk - makefiles/GensrcCharsetCoder.gmk - makefiles/GensrcCharsetMapping.gmk - makefiles/GensrcExceptions.gmk - makefiles/GensrcIcons.gmk - makefiles/GensrcJDWP.gmk - makefiles/GensrcJObjC.gmk - makefiles/GensrcLocaleDataMetaInfo.gmk - makefiles/GensrcMisc.gmk - makefiles/GensrcProperties.gmk - makefiles/GensrcSwing.gmk - makefiles/GensrcX11Wrappers.gmk ! makefiles/Setup.gmk - src/macosx/classes/com/apple/resources/MacOSXResourceBundle.java - src/macosx/native/com/apple/resources/MacOSXResourceBundle.m - src/share/classes/com/sun/jdi/connect/package.html - src/share/classes/com/sun/jdi/connect/spi/package.html - src/share/classes/com/sun/jdi/event/package.html - src/share/classes/com/sun/jdi/package.html - src/share/classes/com/sun/jdi/request/package.html - src/share/classes/com/sun/management/package.html - src/share/classes/com/sun/tools/attach/package.html - src/share/classes/com/sun/tools/attach/spi/package.html - src/share/classes/com/sun/tools/jconsole/package.html ! src/share/classes/java/beans/EventHandler.java ! src/share/classes/java/lang/AbstractStringBuilder.java ! src/share/classes/java/lang/AutoCloseable.java ! src/share/classes/java/lang/Byte.java ! src/share/classes/java/lang/Character.java ! src/share/classes/java/lang/Double.java ! src/share/classes/java/lang/Float.java ! src/share/classes/java/lang/Integer.java ! src/share/classes/java/lang/Iterable.java ! src/share/classes/java/lang/Long.java ! src/share/classes/java/lang/Short.java ! src/share/classes/java/lang/String.java ! src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java ! src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java - src/share/classes/java/lang/invoke/InvokeGeneric.java ! src/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java ! src/share/classes/java/lang/invoke/LambdaForm.java ! src/share/classes/java/lang/invoke/LambdaMetafactory.java - src/share/classes/java/lang/invoke/MagicLambdaImpl.java ! src/share/classes/java/lang/invoke/MemberName.java ! src/share/classes/java/lang/invoke/MethodHandleImpl.java ! src/share/classes/java/lang/invoke/MethodHandleInfo.java ! src/share/classes/java/lang/invoke/MethodHandleNatives.java ! src/share/classes/java/lang/invoke/MethodHandleProxies.java ! src/share/classes/java/lang/invoke/SerializedLambda.java - src/share/classes/java/net/HttpURLPermission.java ! src/share/classes/java/nio/X-Buffer.java.template ! src/share/classes/java/nio/file/Files.java - src/share/classes/java/time/chrono/ChronoDateImpl.java ! src/share/classes/java/util/Arrays.java ! src/share/classes/java/util/BitSet.java ! src/share/classes/java/util/Collection.java ! src/share/classes/java/util/DoubleSummaryStatistics.java ! src/share/classes/java/util/HashMap.java ! src/share/classes/java/util/HashSet.java ! src/share/classes/java/util/Iterator.java ! src/share/classes/java/util/List.java ! src/share/classes/java/util/Map.java ! src/share/classes/java/util/Optional.java ! src/share/classes/java/util/PrimitiveIterator.java ! src/share/classes/java/util/Queue.java ! src/share/classes/java/util/Random.java ! src/share/classes/java/util/Set.java ! src/share/classes/java/util/SortedSet.java ! src/share/classes/java/util/Spliterator.java ! src/share/classes/java/util/SplittableRandom.java ! src/share/classes/java/util/TreeMap.java ! src/share/classes/java/util/concurrent/BlockingDeque.java ! src/share/classes/java/util/concurrent/BlockingQueue.java ! src/share/classes/java/util/concurrent/ConcurrentMap.java ! src/share/classes/java/util/concurrent/ForkJoinTask.java ! src/share/classes/java/util/concurrent/ThreadLocalRandom.java ! src/share/classes/java/util/concurrent/atomic/DoubleAccumulator.java ! src/share/classes/java/util/concurrent/locks/AbstractQueuedLongSynchronizer.java ! src/share/classes/java/util/concurrent/locks/AbstractQueuedSynchronizer.java ! src/share/classes/java/util/concurrent/locks/ReentrantReadWriteLock.java ! src/share/classes/java/util/function/package-info.java ! src/share/classes/java/util/logging/Logger.java ! src/share/classes/java/util/regex/Pattern.java ! src/share/classes/java/util/stream/BaseStream.java ! src/share/classes/java/util/stream/Collectors.java ! src/share/classes/java/util/stream/DoublePipeline.java ! src/share/classes/java/util/stream/DoubleStream.java ! src/share/classes/java/util/stream/IntPipeline.java ! src/share/classes/java/util/stream/IntStream.java ! src/share/classes/java/util/stream/LongPipeline.java ! src/share/classes/java/util/stream/LongStream.java ! src/share/classes/java/util/stream/Node.java ! src/share/classes/java/util/stream/Nodes.java ! src/share/classes/java/util/stream/ReferencePipeline.java ! src/share/classes/java/util/stream/SortedOps.java ! src/share/classes/java/util/stream/SpinedBuffer.java ! src/share/classes/java/util/stream/Stream.java ! src/share/classes/java/util/stream/StreamSupport.java ! src/share/classes/java/util/stream/Streams.java ! src/share/classes/java/util/stream/package-info.java ! src/share/classes/sun/awt/datatransfer/DataTransferer.java ! src/share/classes/sun/reflect/Reflection.java - src/share/demo/jfc/Notepad/resources/Notepad_fr.properties - src/share/demo/jfc/Notepad/resources/Notepad_sv.properties ! src/share/javavm/export/jvm.h ! src/share/lib/security/java.security-linux ! src/solaris/classes/sun/nio/fs/UnixPath.java - src/solaris/doc/sun/man/man1/ja/javaws.1 - src/solaris/doc/sun/man/man1/javaws.1 ! src/solaris/native/java/lang/java_props_md.c ! test/Makefile ! test/ProblemList.txt - test/com/oracle/security/ucrypto/TestAES.java - test/com/oracle/security/ucrypto/TestDigest.java - test/com/oracle/security/ucrypto/TestRSA.java - test/com/oracle/security/ucrypto/UcryptoTest.java - test/java/net/HttpURLPermission/HttpURLPermissionTest.java - test/java/net/HttpURLPermission/URLTest.java - test/java/net/HttpURLPermission/policy.1 - test/java/net/HttpURLPermission/policy.2 - test/java/net/HttpURLPermission/policy.3 - test/java/net/NetworkInterface/MemLeakTest.java ! test/java/nio/file/Files/StreamTest.java - test/java/time/tck/java/time/chrono/TCKChronologySerialization.java ! test/java/util/Arrays/ParallelPrefix.java ! test/java/util/Collection/MOAT.java ! test/java/util/Map/Defaults.java ! test/java/util/Spliterator/SpliteratorCharacteristics.java ! test/java/util/stream/bootlib/java/util/stream/OpTestCase.java ! test/java/util/stream/boottest/java/util/stream/SpinedBufferTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/ForEachOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/InfiniteStreamWithLimitOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/IntSliceOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SliceOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/SortedOpTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/StreamBuilderTest.java ! test/java/util/stream/test/org/openjdk/tests/java/util/stream/TabulatorsTest.java - test/jdk/lambda/vm/DefaultMethodsTest.java - test/sun/management/jmxremote/bootstrap/CustomLauncherTest.sh - test/sun/management/jmxremote/bootstrap/LocalManagementTest.sh From jon.rafkind at hp.com Mon Oct 28 18:06:33 2013 From: jon.rafkind at hp.com (Rafkind, Jon) Date: Tue, 29 Oct 2013 01:06:33 +0000 Subject: clarification of 18.2.3 Message-ID: Section 18.2.3 Subtyping Constraints of jsr 335 says A constraint formula of the form ?S <: T? is reduced as follows: ... If T is a non-parameterized class or interface type, C, then the constraint reduces to true if S is a parameterization of C, or if C is a superclass or superinterface of T, and false otherwise. 1. What is the point of introducing a new metavariable C? It seems that C == T 2. I assume the point of this rule is to handle the case where a type has T does not have type parameters even though its class declaration has them: List <: List Where a1 is some inference variable. In this case, any parameterization of List is a subtype of List. Is that right? 3. The last clause seems vacuous. 'if C is a superclass/superinterface of T' but C == T, so assuming superclass/superinterface means a proper super then C can never be its own super type. Also this leaves S out. Is it a typo, and it should instead read as 'or if C is a superclass or superinterface of S ...' Which would handle the case of List <: Collection From brian.goetz at oracle.com Mon Oct 28 18:34:13 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 29 Oct 2013 01:34:13 +0000 Subject: hg: lambda/lambda: 18 new changesets Message-ID: <20131029013420.4F680627C6@hg.openjdk.java.net> Changeset: 22c6f0b7e2b5 Author: dcubed Date: 2013-10-15 08:24 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/22c6f0b7e2b5 7165611: implement Full Debug Symbols on MacOS X hotspot Summary: Add MacOS X FDS support to hotspot; add minimal MacOS X FDS import support to jdk; add MacOS X FDS support to install; add MacOS X FDS support to root. Reviewed-by: erikj, sla, dholmes, rdurbin, tbell, ihse ! common/autoconf/basics.m4 ! common/autoconf/generated-configure.sh ! common/autoconf/hotspot-spec.gmk.in ! common/autoconf/jdk-options.m4 ! common/autoconf/spec.gmk.in ! common/makefiles/NativeCompilation.gmk Changeset: ac09e62d5e6b Author: amurillo Date: 2013-10-19 08:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/ac09e62d5e6b Merge ! common/autoconf/basics.m4 ! common/autoconf/generated-configure.sh ! common/autoconf/hotspot-spec.gmk.in ! common/autoconf/jdk-options.m4 ! common/autoconf/spec.gmk.in ! common/makefiles/NativeCompilation.gmk Changeset: 9d5284dfc00d Author: amurillo Date: 2013-10-22 13:56 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/9d5284dfc00d Merge Changeset: 5b4f14990dd1 Author: ihse Date: 2013-10-18 10:41 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/5b4f14990dd1 8001912: Improve detection of msvcr100.dll Reviewed-by: erikj ! common/autoconf/generated-configure.sh ! common/autoconf/toolchain.m4 ! common/autoconf/toolchain_windows.m4 Changeset: 65c1752b4c38 Author: katleman Date: 2013-10-18 15:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/65c1752b4c38 Merge Changeset: 17d195bd56fc Author: erikj Date: 2013-10-18 11:34 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/17d195bd56fc 8025869: make docs doesn't regenerate docs correctly after changing API doc comments in jaxp sources Reviewed-by: ihse, tbell ! common/makefiles/JavaCompilation.gmk Changeset: e27dda53d4f5 Author: erikj Date: 2013-10-21 10:40 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/e27dda53d4f5 Merge Changeset: 1a853fac18ff Author: erikj Date: 2013-10-21 11:59 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/1a853fac18ff 8026528: [build] configure does not recognize newer make in cygwin Reviewed-by: tbell, ksrini, ihse ! NewMakefile.gmk ! common/autoconf/basics.m4 ! common/autoconf/generated-configure.sh Changeset: dffe654ab24c Author: ihse Date: 2013-10-22 11:12 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/dffe654ab24c 8001925: Add useful help messages if freetype is not found on Windows Reviewed-by: erikj, tbell ! common/autoconf/generated-configure.sh ! common/autoconf/help.m4 Changeset: 56db38956113 Author: ihse Date: 2013-10-22 12:29 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/56db38956113 8026864: Deprecate --disable-macosx-runtime-support. Reviewed-by: erikj ! common/autoconf/basics.m4 ! common/autoconf/generated-configure.sh ! common/autoconf/libraries.m4 Changeset: 9e177e7fc438 Author: katleman Date: 2013-10-22 14:53 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/9e177e7fc438 Merge ! common/autoconf/basics.m4 ! common/autoconf/generated-configure.sh ! common/makefiles/JavaCompilation.gmk Changeset: 4293401d683b Author: katleman Date: 2013-10-22 16:35 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/4293401d683b 8027068: Update to NewMakefile.gmk check of MAKE_VERSION broke jdk8-build nightly builds on windows, saying 3.82.90 is too low Reviewed-by: ihse, tbell, wetmore ! NewMakefile.gmk Changeset: 269497597620 Author: tbell Date: 2013-10-22 16:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/269497597620 8027039: [jprt] Remove 32-bit Solaris from jprt.properties files Reviewed-by: mduigou, mchung ! make/jprt.properties Changeset: 2cc1a52d37ef Author: tbell Date: 2013-10-22 16:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/2cc1a52d37ef Merge Changeset: 6f19b2440412 Author: ihse Date: 2013-10-23 13:05 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/6f19b2440412 8001922: Improve freetype handling. Reviewed-by: erikj ! common/autoconf/configure.ac ! common/autoconf/generated-configure.sh ! common/autoconf/help.m4 ! common/autoconf/libraries.m4 ! common/autoconf/spec.gmk.in Changeset: 6ba4c7cb623e Author: erikj Date: 2013-10-23 17:03 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/rev/6ba4c7cb623e 8026888: Licensee build failure due to wrong libs being called Reviewed-by: tbell, ihse, simonis ! common/autoconf/generated-configure.sh ! common/autoconf/libraries.m4 Changeset: a36df87b3901 Author: cl Date: 2013-10-24 09:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/rev/a36df87b3901 Added tag jdk8-b113 for changeset 6ba4c7cb623e ! .hgtags Changeset: 803d5d602dde Author: briangoetz Date: 2013-10-28 21:14 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/803d5d602dde Automated merge with http://hg.openjdk.java.net/jdk8/tl ! .hgtags - .jcheck/conf ! common/autoconf/generated-configure.sh ! common/makefiles/JavaCompilation.gmk From brian.goetz at oracle.com Mon Oct 28 18:34:32 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 29 Oct 2013 01:34:32 +0000 Subject: hg: lambda/lambda/langtools: 5 new changesets Message-ID: <20131029013505.5A4BE627C8@hg.openjdk.java.net> Changeset: 127c2e74d2cf Author: tbell Date: 2013-10-22 16:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/127c2e74d2cf 8027039: [jprt] Remove 32-bit Solaris from jprt.properties files Reviewed-by: mduigou, mchung ! make/jprt.properties Changeset: 54150586ba78 Author: katleman Date: 2013-10-23 08:50 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/54150586ba78 Merge Changeset: 850d2602ae98 Author: cl Date: 2013-10-24 09:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/850d2602ae98 Added tag jdk8-b113 for changeset 54150586ba78 ! .hgtags Changeset: 44e3ba40e00c Author: lana Date: 2013-10-28 12:29 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/44e3ba40e00c Merge Changeset: cacf685c22c7 Author: briangoetz Date: 2013-10-28 21:14 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/cacf685c22c7 Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! .hgtags - .jcheck/conf - test/tools/javac/Diagnostics/compressed/T8012003c.java - test/tools/javac/Diagnostics/compressed/T8012003c.out - test/tools/javac/defaultMethods/TestNoBridgeOnDefaults.java - test/tools/javac/defaultMethods/separate/Separate.java - test/tools/javac/diags/examples/BadArgTypesInLambda.java From brian.goetz at oracle.com Mon Oct 28 18:34:24 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 29 Oct 2013 01:34:24 +0000 Subject: hg: lambda/lambda/corba: 4 new changesets Message-ID: <20131029013433.7296B627C7@hg.openjdk.java.net> Changeset: a259ff3e42d9 Author: tbell Date: 2013-10-22 16:29 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/a259ff3e42d9 8027039: [jprt] Remove 32-bit Solaris from jprt.properties files Reviewed-by: mduigou, mchung ! make/jprt.properties Changeset: 0bbccf77c23e Author: cl Date: 2013-10-24 09:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/0bbccf77c23e Added tag jdk8-b113 for changeset a259ff3e42d9 ! .hgtags Changeset: 219e616a6a4f Author: lana Date: 2013-10-28 12:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/219e616a6a4f Merge Changeset: 154c0490d980 Author: briangoetz Date: 2013-10-28 21:15 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/corba/rev/154c0490d980 Automated merge with http://hg.openjdk.java.net/jdk8/tl/corba ! .hgtags - .jcheck/conf From brian.goetz at oracle.com Mon Oct 28 18:35:06 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 29 Oct 2013 01:35:06 +0000 Subject: hg: lambda/lambda/hotspot: 71 new changesets Message-ID: <20131029013816.6A856627CB@hg.openjdk.java.net> Changeset: 7c26dced065e Author: amurillo Date: 2013-10-11 13:14 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/7c26dced065e 8026265: new hotspot build - hs25-b55 Reviewed-by: jcoomes ! make/hotspot_version Changeset: b4a4fdc1f464 Author: coleenp Date: 2013-10-09 21:45 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/b4a4fdc1f464 8025185: MethodHandleInError and MethodTypeInError not handled in ConstantPool::compare_entry_to and copy_entry_to Summary: Add missing cases. Reviewed-by: sspitsyn, dcubed ! src/share/vm/oops/constantPool.cpp Changeset: e831448418ac Author: coleenp Date: 2013-10-09 22:01 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e831448418ac Merge Changeset: cd7ea1d79dac Author: sla Date: 2013-10-11 13:48 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/cd7ea1d79dac 8026199: serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java Compilation failed Summary: Fixed a compilation failure due to changed method name Reviewed-by: sla, jbachorik Contributed-by: fredrik.arvidsson at oracle.com ! test/serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java ! test/testlibrary/com/oracle/java/testlibrary/JDKToolLauncher.java Changeset: 539144972c1e Author: sla Date: 2013-10-11 14:08 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/539144972c1e 8024425: VM_HeapDumper doesn't put anonymous classes in the heap dump Summary: Switched from using SystemDictionary to using ClassLoaderDataGraph to get the anonymous classes included. Reviewed-by: sla, sspitsyn Contributed-by: fredrik.arvidsson at oracle.com ! src/share/vm/services/heapDumper.cpp Changeset: 301ece1880ad Author: sla Date: 2013-10-11 14:57 +0000 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/301ece1880ad Merge Changeset: 28ca974cc21a Author: coleenp Date: 2013-10-11 11:23 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/28ca974cc21a 8022592: assert at constantTag.cpp:57: ShouldNotReachHere() Summary: more missing cases for JVM_CONSTANT_Method{Handle,Type}InError Reviewed-by: hseigel, dcubed ! src/share/vm/oops/constantPool.cpp ! src/share/vm/utilities/constantTag.cpp ! src/share/vm/utilities/constantTag.hpp Changeset: 26ae62bc26c4 Author: coleenp Date: 2013-10-11 15:04 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/26ae62bc26c4 Merge Changeset: 0db3ba3f6870 Author: hseigel Date: 2013-10-11 15:33 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/0db3ba3f6870 8026041: JVM crashes with assert "assert(is_updated()) failed: must not be clear" with -XX:+PrintGCApplicationConcurrentTime in -Xcomp mode Summary: Prior to printing the time interval in RuntimeService::record_safepoint_begin(), check first that VM initialization is complete. Reviewed-by: coleenp, dholmes, sla, ctornqvi Contributed-by: lois.foltan at oracle.com ! src/share/vm/services/runtimeService.cpp Changeset: df268195b0ea Author: hseigel Date: 2013-10-11 17:08 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/df268195b0ea Merge Changeset: 41459da469ae Author: ccheung Date: 2013-10-11 18:23 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/41459da469ae Merge Changeset: 83dbf427fedd Author: ccheung Date: 2013-10-11 22:22 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/83dbf427fedd Merge Changeset: 3e265ce4d2dd Author: hseigel Date: 2013-10-12 13:09 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/3e265ce4d2dd 8025942: os::Bsd::available_memory() needs implementation Summary: Implement using the host_statistics64() api. Reviewed-by: dsamersoff, morris, dholmes, coleenp, hseigel, dcubed Contributed-by: gerard.ziemski at oracle.com ! src/os/bsd/vm/os_bsd.cpp Changeset: d37a0525c0fe Author: hseigel Date: 2013-10-12 15:39 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d37a0525c0fe 8024667: VM crashes with "assert(method() != NULL) failed: must have set method" Summary: Check if data is in shared spaces before deallocating it. Reviewed-by: coleenp, dcubed ! src/share/vm/memory/metadataFactory.hpp ! src/share/vm/oops/instanceKlass.cpp Changeset: 2f8728d92483 Author: acorn Date: 2013-10-14 21:52 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/2f8728d92483 8026299: invokespecial gets ICCE when it should get AME. Reviewed-by: ccheung, coleenp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/interpreter/linkResolver.hpp Changeset: f509b8f4699b Author: dcubed Date: 2013-10-15 08:25 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f509b8f4699b 7165611: implement Full Debug Symbols on MacOS X hotspot Summary: Add MacOS X FDS support to hotspot; add minimal MacOS X FDS import support to jdk; add MacOS X FDS support to install; add MacOS X FDS support to root. Reviewed-by: erikj, sla, dholmes, rdurbin, tbell, ihse ! make/Makefile ! make/bsd/Makefile ! make/bsd/makefiles/buildtree.make ! make/bsd/makefiles/defs.make ! make/bsd/makefiles/dtrace.make ! make/bsd/makefiles/gcc.make ! make/bsd/makefiles/jsig.make ! make/bsd/makefiles/product.make ! make/bsd/makefiles/saproc.make ! make/bsd/makefiles/universal.gmk ! make/bsd/makefiles/vm.make ! make/defs.make Changeset: e8703d708e6e Author: ccheung Date: 2013-10-16 11:48 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e8703d708e6e Merge Changeset: 1e814e391ee8 Author: anoll Date: 2013-10-04 09:19 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1e814e391ee8 8025656: compiler/8013496/Test8013496.sh fails on assert Summary: Ensure the thread is in correct state; rewrote test in Java Reviewed-by: kvn, twisti ! src/share/vm/compiler/compileBroker.cpp - test/compiler/8013496/Test8013496.sh + test/compiler/codecache/CheckReservedInitialCodeCacheSizeArgOrder.java Changeset: 0c4c40f5c399 Author: twisti Date: 2013-10-04 10:11 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/0c4c40f5c399 8011138: C2: stack overflow in compiler thread because of recursive inlining of lambda form methods Reviewed-by: kvn, roland ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/parse.hpp Changeset: 5f1241525a01 Author: twisti Date: 2013-10-04 19:05 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5f1241525a01 Merge Changeset: bf8a21c3ab3b Author: vlivanov Date: 2013-10-07 14:10 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/bf8a21c3ab3b 8025849: Redundant "pid" in VM log file name (e.g. hotspot_pidpid12345.log) Reviewed-by: twisti, azeemj ! src/share/vm/utilities/ostream.cpp Changeset: 5cc2d82aa82a Author: vlivanov Date: 2013-10-07 14:11 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5cc2d82aa82a 8024943: ciReplay: fails to dump replay data during safepointing Reviewed-by: kvn, twisti ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciEnv.hpp ! src/share/vm/ci/ciInstanceKlass.cpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciMethodData.cpp ! src/share/vm/utilities/vmError.cpp Changeset: f478c98e8114 Author: vlivanov Date: 2013-10-07 14:12 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f478c98e8114 8024774: assert(_con < t->is_tuple()->cnt()) failed: ProjNode::_con must be in range Reviewed-by: iveresov, roland, kvn, twisti ! src/share/vm/opto/parse2.cpp Changeset: 5741fc86a2ee Author: vlivanov Date: 2013-10-07 14:13 +0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/5741fc86a2ee 8025845: Default methods are unnecessarily marked w/ force_inline directive in some situations Reviewed-by: acorn, kvn ! src/share/vm/classfile/defaultMethods.cpp Changeset: c775af091fe9 Author: twisti Date: 2013-10-07 10:41 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c775af091fe9 8025566: EXCEPTION_ACCESS_VIOLATION in compiled by C1 String.valueOf method Reviewed-by: kvn ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/ci/ciMethodData.cpp ! src/share/vm/ci/ciMethodData.hpp ! src/share/vm/ci/ciReplay.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/opto/parseHelper.cpp Changeset: d9043b88eeb3 Author: roland Date: 2013-10-03 10:55 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d9043b88eeb3 8024067: Missing replace_in_map() calls following null checks Summary: add replace_in_map() calls following some null checks in type checks Reviewed-by: kvn ! src/share/vm/opto/graphKit.cpp ! src/share/vm/opto/graphKit.hpp Changeset: 17cda06bcb7d Author: iveresov Date: 2013-10-08 07:08 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/17cda06bcb7d Merge ! src/share/vm/classfile/defaultMethods.cpp - test/compiler/8013496/Test8013496.sh Changeset: 6171eb9da4fd Author: twisti Date: 2013-10-08 19:57 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/6171eb9da4fd 8007923: Tests on references fails Reviewed-by: kvn, iveresov ! src/share/vm/ci/ciKlass.cpp ! src/share/vm/opto/escape.cpp Changeset: 98692a2d36d7 Author: adlertz Date: 2013-10-09 13:00 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/98692a2d36d7 8013830: [parfait] Uninitialised pointer 'Reachblock' may be used as argument Summary: Replace uninitialised pointer with NULL at argument. Reviewed-by: kvn, roland, twisti ! src/share/vm/opto/reg_split.cpp Changeset: 4e7f99b70d9d Author: adlertz Date: 2013-10-09 05:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4e7f99b70d9d Merge - test/testlibrary/AssertsTest.java - test/testlibrary/OutputAnalyzerReportingTest.java - test/testlibrary/OutputAnalyzerTest.java Changeset: 46ef27bcacb3 Author: twisti Date: 2013-10-09 11:05 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/46ef27bcacb3 8020750: Node::get_int: guarantee(t != NULL) failed: must be con Reviewed-by: kvn, roland ! src/share/vm/opto/ifnode.cpp Changeset: d13d7aba8c12 Author: roland Date: 2013-10-09 16:32 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d13d7aba8c12 8023657: New type profiling points: arguments to call Summary: x86 interpreter and c1 type profiling for arguments at calls Reviewed-by: kvn, twisti ! src/cpu/sparc/vm/c1_LIRAssembler_sparc.cpp ! src/cpu/sparc/vm/globals_sparc.hpp ! src/cpu/x86/vm/c1_LIRAssembler_x86.cpp ! src/cpu/x86/vm/globals_x86.hpp ! src/cpu/x86/vm/interp_masm_x86_32.cpp ! src/cpu/x86/vm/interp_masm_x86_32.hpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/interp_masm_x86_64.hpp ! src/cpu/x86/vm/macroAssembler_x86.hpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/share/vm/c1/c1_Compilation.cpp ! src/share/vm/c1/c1_Compilation.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_GraphBuilder.hpp ! src/share/vm/c1/c1_Instruction.cpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/c1/c1_InstructionPrinter.cpp ! src/share/vm/c1/c1_LIR.cpp ! src/share/vm/c1/c1_LIR.hpp ! src/share/vm/c1/c1_LIRAssembler.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/c1/c1_Optimizer.cpp ! src/share/vm/c1/c1_RangeCheckElimination.hpp ! src/share/vm/ci/ciClassList.hpp ! src/share/vm/ci/ciInstanceKlass.hpp ! src/share/vm/ci/ciKlass.hpp ! src/share/vm/ci/ciMethodData.cpp ! src/share/vm/ci/ciMethodData.hpp ! src/share/vm/ci/ciObjArrayKlass.cpp ! src/share/vm/ci/ciObjArrayKlass.hpp ! src/share/vm/ci/ciStreams.hpp ! src/share/vm/ci/ciTypeArrayKlass.hpp ! src/share/vm/oops/methodData.cpp ! src/share/vm/oops/methodData.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/signature.cpp ! src/share/vm/runtime/signature.hpp Changeset: 8b80b262e501 Author: twisti Date: 2013-10-11 10:14 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8b80b262e501 8005173: assert(false) failed: DEBUG MESSAGE: exception oop must be empty (macroAssembler_x86.cpp:625) Reviewed-by: kvn, iveresov ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/share/vm/c1/c1_Runtime1.cpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/runtime/thread.hpp Changeset: d8a449d2f5b2 Author: adlertz Date: 2013-10-11 13:10 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d8a449d2f5b2 8011415: CTW on Sparc: assert(lrg.lo_degree()) failed: Summary: Increased the LRG AllStack mask size since the previous size was not big enough when compiling huge methods (60k+ nodes) Reviewed-by: kvn, roland, twisti ! src/share/vm/opto/chaitin.hpp ! src/share/vm/opto/ifg.cpp Changeset: 2348b2726e1d Author: adlertz Date: 2013-10-11 19:16 +0000 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/2348b2726e1d Merge Changeset: dd2cf1d1248b Author: adlertz Date: 2013-10-12 01:29 +0000 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/dd2cf1d1248b Merge Changeset: 469216acdb28 Author: anoll Date: 2013-10-10 15:44 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/469216acdb28 8023014: CodeSweeperSweepNoFlushTest.java fails with HS crash Summary: Ensure ensure correct initialization of compiler runtime Reviewed-by: kvn, twisti ! src/share/vm/c1/c1_Compiler.cpp ! src/share/vm/c1/c1_Compiler.hpp ! src/share/vm/code/codeBlob.cpp ! src/share/vm/code/codeBlob.hpp ! src/share/vm/compiler/abstractCompiler.cpp ! src/share/vm/compiler/abstractCompiler.hpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/compiler/compileBroker.hpp ! src/share/vm/opto/c2compiler.cpp ! src/share/vm/opto/c2compiler.hpp ! src/share/vm/opto/runtime.cpp ! src/share/vm/opto/runtime.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/shark/sharkCompiler.cpp ! src/share/vm/shark/sharkCompiler.hpp + test/compiler/startup/SmallCodeCacheStartup.java Changeset: ed2c74787eb5 Author: twisti Date: 2013-10-11 19:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ed2c74787eb5 Merge Changeset: ce0cc25bc5e2 Author: roland Date: 2013-10-12 12:12 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ce0cc25bc5e2 8026054: New type profiling points: type of return values at calls Summary: x86 interpreter and c1 type profiling for return values at calls Reviewed-by: kvn, twisti ! src/cpu/x86/vm/globals_x86.hpp ! src/cpu/x86/vm/interp_masm_x86_32.cpp ! src/cpu/x86/vm/interp_masm_x86_32.hpp ! src/cpu/x86/vm/interp_masm_x86_64.cpp ! src/cpu/x86/vm/interp_masm_x86_64.hpp ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/share/vm/c1/c1_Canonicalizer.cpp ! src/share/vm/c1/c1_Canonicalizer.hpp ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/c1/c1_GraphBuilder.hpp ! src/share/vm/c1/c1_Instruction.hpp ! src/share/vm/c1/c1_InstructionPrinter.cpp ! src/share/vm/c1/c1_InstructionPrinter.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/c1/c1_LIRGenerator.hpp ! src/share/vm/c1/c1_Optimizer.cpp ! src/share/vm/c1/c1_RangeCheckElimination.hpp ! src/share/vm/c1/c1_ValueMap.hpp ! src/share/vm/ci/ciMethodData.cpp ! src/share/vm/ci/ciMethodData.hpp ! src/share/vm/oops/methodData.cpp ! src/share/vm/oops/methodData.hpp ! src/share/vm/runtime/globals.hpp Changeset: f50418dfb1b7 Author: iveresov Date: 2013-10-13 13:22 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f50418dfb1b7 Merge ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/opto/graphKit.cpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/vmStructs.cpp - test/compiler/8013496/Test8013496.sh Changeset: e504cd481ec0 Author: twisti Date: 2013-10-14 19:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e504cd481ec0 8026376: assert(false) failed: DEBUG MESSAGE: exception pc already set Reviewed-by: kvn ! src/cpu/sparc/vm/sharedRuntime_sparc.cpp Changeset: 8df6f123d35e Author: drchase Date: 2013-10-12 17:26 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8df6f123d35e 8026124: JSR-292 bug: java.nio.file.Path.toString cores dump Summary: catch problem case, assert it matches valid input, new test Reviewed-by: jrose, twisti, kvn ! src/share/vm/interpreter/linkResolver.cpp + test/compiler/jsr292/CreatesInterfaceDotEqualsCallInfo.java + test/compiler/jsr292/createsInterfaceDotEqualsCallInfo.js Changeset: f91a9a696e5e Author: kvn Date: 2013-10-15 12:14 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f91a9a696e5e 8026293: Schedule part of G1 pre-barrier late Summary: move rare executed part of G1 write barrier from hot path. Reviewed-by: kvn, twisti, roland Contributed-by: staffan.friberg at oracle.com ! src/share/vm/opto/graphKit.cpp Changeset: 1263c7e17e1c Author: kvn Date: 2013-10-15 17:47 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/1263c7e17e1c Merge Changeset: 4a2acfb16e97 Author: rbackman Date: 2013-10-11 12:06 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4a2acfb16e97 8025657: compiler/intrinsics/mathexact/ConstantTest.java fails on assert in lcm.cpp on solaris x64 Reviewed-by: kvn, twisti ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/mathexactnode.cpp ! src/share/vm/opto/mathexactnode.hpp + test/compiler/intrinsics/mathexact/RepeatTest.java Changeset: 90abdd727e64 Author: iveresov Date: 2013-10-16 11:13 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/90abdd727e64 8009303: Tiered: incorrect results in VM tests stringconcat with -Xcomp -XX:+DeoptimizeALot on solaris-amd64 Summary: Do memory flow analysis in string concat optimizier to exclude cases when computation of arguments to StringBuffer::append has side effects Reviewed-by: kvn, twisti ! src/share/vm/opto/idealGraphPrinter.cpp ! src/share/vm/opto/stringopts.cpp Changeset: 8f4bb1773fd9 Author: iveresov Date: 2013-10-17 10:58 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/8f4bb1773fd9 Merge ! src/share/vm/interpreter/linkResolver.cpp - test/compiler/8013496/Test8013496.sh Changeset: 7114c4597ae3 Author: acorn Date: 2013-10-17 23:30 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/7114c4597ae3 8026365: NoClassDefinitionFound for anonymous class invokespecial. Reviewed-by: dcubed, kamg ! src/share/vm/classfile/verifier.cpp ! test/TEST.groups Changeset: 9c8289162268 Author: jwilhelm Date: 2013-10-11 16:18 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9c8289162268 8024776: Max/MinHeapFreeRatio descriptions should be more precise Summary: Descriptions for Max/MinHeapFreeRatio updated Reviewed-by: ehelin, jmasa ! src/share/vm/runtime/globals.hpp Changeset: 2382ff14d889 Author: jwilhelm Date: 2013-10-12 05:08 +0000 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/2382ff14d889 Merge ! src/share/vm/runtime/globals.hpp Changeset: 24f32d09a0d7 Author: jwilhelm Date: 2013-10-12 00:49 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/24f32d09a0d7 8023643: G1 assert failed when NewSize was specified greater than MaxNewSize Summary: Exit with an error if incompatible NewSize and MaxNeSize are set Reviewed-by: brutisso, tschatzl ! src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Changeset: d6818f623792 Author: tschatzl Date: 2013-10-15 11:18 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/d6818f623792 8026186: gc/metaspace/CompressedClassSpaceSizeInJmapHeap.java Compilation failed Summary: After a method rename in JDK-8014905 the mentioned test did not compile any more. Fix the uses of the affected method. Reviewed-by: jwilhelm, mgerdin, jmasa ! test/serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java ! test/testlibrary/com/oracle/java/testlibrary/JDKToolLauncher.java Changeset: 027006a47a6d Author: sjohanss Date: 2013-10-14 14:21 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/027006a47a6d 8025661: Ill-formed -Xminf and -Xmaxf options values interpreted as 0 Summary: Using strtod() instead of atof() when parsing -Xminf and -Xmaxf. Reviewed-by: brutisso, pliden ! src/share/vm/runtime/arguments.cpp + test/gc/arguments/TestHeapFreeRatio.java Changeset: 82fcc0567fef Author: mgerdin Date: 2013-10-15 04:29 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/82fcc0567fef Merge Changeset: 6f1919cfd18c Author: pliden Date: 2013-10-15 11:38 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/6f1919cfd18c 8023158: hotspot/test/gc/7168848/HumongousAlloc.java fails 14 full gcs, expect 0 full gcs Reviewed-by: brutisso, tschatzl ! test/TEST.groups - test/gc/7168848/HumongousAlloc.java + test/gc/g1/TestHumongousAllocInitialMark.java Changeset: bfd52054aeb8 Author: pliden Date: 2013-10-15 11:42 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/bfd52054aeb8 8024632: Description of InitialSurvivorRatio flag in globals.hpp is incorrect Reviewed-by: brutisso, tschatzl, kmo, tamao ! src/share/vm/runtime/globals.hpp Changeset: 041c5da41ac4 Author: pliden Date: 2013-10-15 11:44 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/041c5da41ac4 8024634: gc/startup_warnings tests can fail due to unrelated warnings Reviewed-by: brutisso, jwilhelm, tamao ! test/gc/startup_warnings/TestCMS.java ! test/gc/startup_warnings/TestCMSNoIncrementalMode.java ! test/gc/startup_warnings/TestG1.java ! test/gc/startup_warnings/TestParNewCMS.java ! test/gc/startup_warnings/TestParallelGC.java ! test/gc/startup_warnings/TestParallelScavengeSerialOld.java ! test/gc/startup_warnings/TestSerialGC.java Changeset: f16726924734 Author: stefank Date: 2013-10-15 07:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/f16726924734 Merge - test/gc/7168848/HumongousAlloc.java Changeset: bdfbb1fb19ca Author: stefank Date: 2013-10-15 14:28 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/bdfbb1fb19ca 8026391: The Metachunk header wastes memory Reviewed-by: coleenp, jmasa ! src/share/vm/memory/binaryTreeDictionary.cpp ! src/share/vm/memory/freeBlockDictionary.cpp ! src/share/vm/memory/freeList.cpp - src/share/vm/memory/metablock.cpp - src/share/vm/memory/metablock.hpp ! src/share/vm/memory/metachunk.cpp ! src/share/vm/memory/metachunk.hpp ! src/share/vm/memory/metaspace.cpp ! src/share/vm/memory/metaspace.hpp ! src/share/vm/prims/jni.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: ec2e26e26183 Author: stefank Date: 2013-10-15 14:32 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/ec2e26e26183 8026392: Metachunks and Metablocks are using a too large alignment Reviewed-by: coleenp, jmasa ! src/share/vm/memory/metachunk.cpp Changeset: 9e5fadad7fdf Author: tschatzl Date: 2013-10-16 11:46 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9e5fadad7fdf 8025925: jmap fails with "field _length not found in type HeapRegionSeq" Summary: The change JDK-7163191 changed the data layout of a class that is referenced by the java code of the SA agent. This fix synchronizes the SA agent with that change. Reviewed-by: sla, mgerdin + agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/G1HeapRegionTable.java ! agent/src/share/classes/sun/jvm/hotspot/gc_implementation/g1/HeapRegionSeq.java Changeset: 28df60a5badf Author: stefank Date: 2013-10-17 08:41 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/28df60a5badf 8026707: JDK-8026391 broke the optimized build target Reviewed-by: mgerdin, coleenp ! src/share/vm/memory/metachunk.hpp Changeset: 94c0343b1887 Author: stefank Date: 2013-10-17 08:42 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/94c0343b1887 8026715: Remove the MetaDataDeallocateALot develop flag Reviewed-by: coleenp, mgerdin ! src/share/vm/memory/metaspace.cpp ! src/share/vm/runtime/globals.hpp Changeset: bf9e50c573ad Author: jmasa Date: 2013-10-17 06:29 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/bf9e50c573ad 8025635: SoftReferences are not cleared before metaspace OOME are thrown Reviewed-by: jcoomes, tamao, tschatzl, stefank ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp Changeset: c51cd6af7e61 Author: jcoomes Date: 2013-10-18 12:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/c51cd6af7e61 Merge ! src/share/vm/runtime/globals.hpp ! src/share/vm/runtime/vmStructs.cpp ! test/TEST.groups - test/compiler/8013496/Test8013496.sh ! test/serviceability/sa/jmap-hprof/JMapHProfLargeHeapTest.java ! test/testlibrary/com/oracle/java/testlibrary/JDKToolLauncher.java Changeset: 23b8db5ea31d Author: amurillo Date: 2013-10-18 21:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/23b8db5ea31d Merge - src/share/vm/memory/metablock.cpp - src/share/vm/memory/metablock.hpp - test/compiler/8013496/Test8013496.sh - test/gc/7168848/HumongousAlloc.java Changeset: e8cbdc701bfb Author: amurillo Date: 2013-10-18 21:30 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/e8cbdc701bfb Added tag hs25-b55 for changeset 23b8db5ea31d ! .hgtags Changeset: 4589b398ab03 Author: amurillo Date: 2013-10-22 13:56 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4589b398ab03 Merge - src/share/vm/memory/metablock.cpp - src/share/vm/memory/metablock.hpp - test/compiler/8013496/Test8013496.sh - test/gc/7168848/HumongousAlloc.java Changeset: 4a1128861221 Author: cl Date: 2013-10-24 09:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/4a1128861221 Added tag jdk8-b113 for changeset 4589b398ab03 ! .hgtags Changeset: 0e55a181cb08 Author: lana Date: 2013-10-28 12:25 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/0e55a181cb08 Merge - src/share/vm/memory/metablock.cpp - src/share/vm/memory/metablock.hpp - test/compiler/8013496/Test8013496.sh - test/gc/7168848/HumongousAlloc.java Changeset: 36b4e9b30322 Author: briangoetz Date: 2013-10-28 21:15 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/36b4e9b30322 Automated merge with http://hg.openjdk.java.net/jdk8/tl/hotspot ! .hgtags - .jcheck/conf ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/runtime/globals.hpp ! src/share/vm/utilities/ostream.cpp From brian.goetz at oracle.com Mon Oct 28 18:34:24 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 29 Oct 2013 01:34:24 +0000 Subject: hg: lambda/lambda/jdk: 18 new changesets Message-ID: <20131029013923.3A52C627CC@hg.openjdk.java.net> Changeset: 01b81253f2d5 Author: dcubed Date: 2013-10-15 08:26 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/01b81253f2d5 7165611: implement Full Debug Symbols on MacOS X hotspot Summary: Add MacOS X FDS support to hotspot; add minimal MacOS X FDS import support to jdk; add MacOS X FDS support to install; add MacOS X FDS support to root. Reviewed-by: erikj, sla, dholmes, rdurbin, tbell, ihse ! make/common/Defs-macosx.gmk ! make/common/Defs.gmk ! make/java/redist/Makefile ! makefiles/Import.gmk ! makefiles/Tools.gmk Changeset: 969e8c6c26cc Author: amurillo Date: 2013-10-19 08:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/969e8c6c26cc Merge ! makefiles/Import.gmk ! makefiles/Tools.gmk Changeset: c4ab67d1e0ce Author: amurillo Date: 2013-10-22 13:56 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/c4ab67d1e0ce Merge ! makefiles/Tools.gmk Changeset: a5b57fca66da Author: ihse Date: 2013-10-16 20:24 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/a5b57fca66da 8025715: Split CompileNativeLibraries.gmk Reviewed-by: erikj ! makefiles/CompileNativeLibraries.gmk + makefiles/lib/Awt2dLibraries.gmk + makefiles/lib/CoreLibraries.gmk + makefiles/lib/NetworkingLibraries.gmk + makefiles/lib/NioLibraries.gmk + makefiles/lib/PlatformLibraries.gmk + makefiles/lib/SecurityLibraries.gmk + makefiles/lib/ServiceabilityLibraries.gmk + makefiles/lib/SoundLibraries.gmk Changeset: 1e99d539088d Author: katleman Date: 2013-10-18 15:03 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/1e99d539088d Merge Changeset: 7ec4ddc36ad6 Author: erikj Date: 2013-10-17 16:15 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/7ec4ddc36ad6 8019540: licensee reports a JDK8 build failure after 8005849/8005008 fixes integrated. Reviewed-by: dholmes, sla ! makefiles/CopyIntoClasses.gmk Changeset: 11e90e4167d4 Author: erikj Date: 2013-10-21 10:40 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/11e90e4167d4 Merge Changeset: 3a6ac3484b05 Author: cl Date: 2013-10-21 23:33 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3a6ac3484b05 8026974: solaris build missing java-rmi.cgi Reviewed-by: ksrini ! makefiles/CompileLaunchers.gmk Changeset: b121e84392fa Author: erikj Date: 2013-10-22 11:59 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b121e84392fa 8026966: Most native libs broken on mac in jdk8/build Reviewed-by: ihse, anthony ! makefiles/lib/PlatformLibraries.gmk Changeset: 9850efaedc50 Author: katleman Date: 2013-10-22 16:14 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/9850efaedc50 Merge ! makefiles/CompileLaunchers.gmk ! makefiles/CompileNativeLibraries.gmk + makefiles/lib/Awt2dLibraries.gmk + makefiles/lib/CoreLibraries.gmk + makefiles/lib/NetworkingLibraries.gmk + makefiles/lib/NioLibraries.gmk + makefiles/lib/PlatformLibraries.gmk + makefiles/lib/SecurityLibraries.gmk + makefiles/lib/ServiceabilityLibraries.gmk + makefiles/lib/SoundLibraries.gmk Changeset: 698937f18761 Author: tbell Date: 2013-10-22 16:29 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/698937f18761 8027039: [jprt] Remove 32-bit Solaris from jprt.properties files Reviewed-by: mduigou, mchung ! make/jprt.properties ! makefiles/jprt.properties Changeset: 81431a7c17cf Author: tbell Date: 2013-10-22 16:51 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/81431a7c17cf Merge - make/sun/awt/FILES_c_macosx.gmk - make/sun/awt/FILES_export_macosx.gmk - src/macosx/classes/com/apple/resources/MacOSXResourceBundle.java - src/macosx/native/com/apple/resources/MacOSXResourceBundle.m - src/share/classes/com/sun/jdi/connect/package.html - src/share/classes/com/sun/jdi/connect/spi/package.html - src/share/classes/com/sun/jdi/event/package.html - src/share/classes/com/sun/jdi/package.html - src/share/classes/com/sun/jdi/request/package.html - src/share/classes/com/sun/management/package.html - src/share/classes/com/sun/tools/attach/package.html - src/share/classes/com/sun/tools/attach/spi/package.html - src/share/classes/com/sun/tools/jconsole/package.html - src/share/classes/java/net/HttpURLPermission.java - test/com/oracle/security/ucrypto/TestAES.java - test/com/oracle/security/ucrypto/TestDigest.java - test/com/oracle/security/ucrypto/TestRSA.java - test/com/oracle/security/ucrypto/UcryptoTest.java - test/java/net/HttpURLPermission/HttpURLPermissionTest.java - test/java/net/HttpURLPermission/URLTest.java - test/java/net/HttpURLPermission/policy.1 - test/java/net/HttpURLPermission/policy.2 - test/java/net/HttpURLPermission/policy.3 Changeset: aabaae5de1ee Author: ihse Date: 2013-10-23 13:06 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/aabaae5de1ee 8001922: Improve freetype handling. Reviewed-by: erikj ! makefiles/CopyFiles.gmk ! makefiles/lib/Awt2dLibraries.gmk Changeset: ab0e61a57df7 Author: chegar Date: 2013-10-23 13:43 +0100 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/ab0e61a57df7 8027059: (sctp) fatal warnings overly restrictive with gcc 4.8.1 Reviewed-by: mduigou, dxu, erikj, ihse ! makefiles/lib/NioLibraries.gmk Changeset: 5b4261b4b72a Author: erikj Date: 2013-10-23 17:57 +0200 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/5b4261b4b72a 8026888: Licensee build failure due to wrong libs being called Reviewed-by: tbell, ihse, simonis ! makefiles/lib/Awt2dLibraries.gmk Changeset: b88aa723a5fa Author: cl Date: 2013-10-24 09:10 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/b88aa723a5fa Added tag jdk8-b113 for changeset 5b4261b4b72a ! .hgtags Changeset: e7639b856256 Author: lana Date: 2013-10-28 12:28 -0700 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/e7639b856256 Merge Changeset: f6bc96afc5d4 Author: briangoetz Date: 2013-10-28 21:15 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/jdk/rev/f6bc96afc5d4 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk ! .hgtags - .jcheck/conf ! make/common/Defs.gmk ! makefiles/CompileNativeLibraries.gmk ! makefiles/lib/Awt2dLibraries.gmk ! makefiles/lib/CoreLibraries.gmk ! makefiles/lib/NetworkingLibraries.gmk ! makefiles/lib/NioLibraries.gmk ! makefiles/lib/PlatformLibraries.gmk ! makefiles/lib/SecurityLibraries.gmk ! makefiles/lib/ServiceabilityLibraries.gmk ! makefiles/lib/SoundLibraries.gmk From brian.goetz at oracle.com Mon Oct 28 18:36:21 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Tue, 29 Oct 2013 01:36:21 +0000 Subject: hg: lambda/lambda: Import patch from jdk/build to address libfreetype dependence Message-ID: <20131029013621.DC462627C9@hg.openjdk.java.net> Changeset: fb58db41d533 Author: briangoetz Date: 2013-10-28 21:35 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/rev/fb58db41d533 Import patch from jdk/build to address libfreetype dependence ! common/autoconf/generated-configure.sh ! common/autoconf/libraries.m4 From mohan.radhakrishnan at polarisFT.com Tue Oct 29 00:15:35 2013 From: mohan.radhakrishnan at polarisFT.com (mohan.radhakrishnan at polarisFT.com) Date: Tue, 29 Oct 2013 12:45:35 +0530 Subject: default methods in interfaces Message-ID: Hi, There is no user list and this is a basic question. The default methods in interfaces are being used to implement 'MixIn' classes(AspectJ does it by weaving classes ) and some references even mention multiple inheritance. What is the general design pattern in application code that this is intended for ? Is this related to functional programming styles in some way ? Should I just search older threads for this type of discussion ? Thanks, Mohan This e-Mail may contain proprietary and confidential information and is sent for the intended recipient(s) only. If by an addressing or transmission error this mail has been misdirected to you, you are requested to delete this mail immediately. You are also hereby notified that any use, any form of reproduction, dissemination, copying, disclosure, modification, distribution and/or publication of this e-mail message, contents or its attachment other than by its intended recipient/s is strictly prohibited. Visit us at http://www.polarisFT.com From michael.hixson at gmail.com Tue Oct 29 02:01:32 2013 From: michael.hixson at gmail.com (Michael Hixson) Date: Tue, 29 Oct 2013 02:01:32 -0700 Subject: default methods in interfaces In-Reply-To: References: Message-ID: Hello, Are you asking about the general use cases for mixins and multiple inheritance? Or are you saying "Default methods on interfaces in Java were introduced to support mixins and multiple inheritance. Why?" If it's the latter, I would say that is *not* the reason default methods were added. Default methods were added to let interfaces grow without breaking existing code. And there was a particularly strong desire to let interfaces grow in this next version of Java due to the introduction of streams and lambdas. Brian Goetz wrote some great summaries of the language- and library-level changes here: http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html http://cr.openjdk.java.net/~briangoetz/lambda/lambda-libraries-final.html Check out the section "10. Default and static interface methods" in that first one. -Michael On Tue, Oct 29, 2013 at 12:15 AM, wrote: > Hi, > There is no user list and this is a basic question. The default > methods in interfaces are being used to implement 'MixIn' classes(AspectJ > does it by weaving classes ) and some references even mention multiple > inheritance. What is the general design pattern in application code that > this is intended for ? Is this related to functional programming styles > in some way ? > > Should I just search older threads for this type of discussion ? > > Thanks, > Mohan > > > This e-Mail may contain proprietary and confidential information and is sent for the intended recipient(s) only. If by an addressing or transmission error this mail has been misdirected to you, you are requested to delete this mail immediately. You are also hereby notified that any use, any form of reproduction, dissemination, copying, disclosure, modification, distribution and/or publication of this e-mail message, contents or its attachment other than by its intended recipient/s is strictly prohibited. > > Visit us at http://www.polarisFT.com > From paul.sandoz at oracle.com Tue Oct 29 02:05:01 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 29 Oct 2013 10:05:01 +0100 Subject: default methods in interfaces In-Reply-To: References: Message-ID: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> Hi Mohan, The primary use-case for default methods is to evolve interfaces without breaking compatibility [*]. Without such a mechanism we would not have been able to evolve the Collections API and integrate it with the Streams API. See section 10 of: http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html What you are asking may have been discussed before, search here: http://openjdk.markmail.org/search/?q=lambda-dev Default methods can be used as a limited form of traits to mix-in behaviour but not state, so they ain't like Scala's traits. Any state (or context) needs to be passed as parameters to those methods. Also note that because there is no state then there are no state-realted issues associated multiple inheritance (Java already has multiple inheritance of types; default methods add some additional inheritance rules for resolving conflicts, but fundamentally they are inherited like other methods). In terms of patterns for this kind of usage, i don't have a clear answer. I expect some may evolve over time as developers evolve and implement new interfaces that provide certain mix-in behaviour. Note that we have been careful not to add the @FunctionalInteface annotation to all interfaces that could be used as the target type of lambda expressions and method references. In certain cases such non-annotated interfaces are more intended to provide mix-in behaviour, so there is clue where to look and watch. Hth, Paul. [*] Note that there is still a small risk that the methods added will clash with methods on implementing classes or other interfaces. On Oct 29, 2013, at 8:15 AM, mohan.radhakrishnan at polarisft.com wrote: > Hi, > There is no user list and this is a basic question. The default > methods in interfaces are being used to implement 'MixIn' classes(AspectJ > does it by weaving classes ) and some references even mention multiple > inheritance. What is the general design pattern in application code that > this is intended for ? Is this related to functional programming styles > in some way ? > > Should I just search older threads for this type of discussion ? > > Thanks, > Mohan > > > This e-Mail may contain proprietary and confidential information and is sent for the intended recipient(s) only. If by an addressing or transmission error this mail has been misdirected to you, you are requested to delete this mail immediately. You are also hereby notified that any use, any form of reproduction, dissemination, copying, disclosure, modification, distribution and/or publication of this e-mail message, contents or its attachment other than by its intended recipient/s is strictly prohibited. > > Visit us at http://www.polarisFT.com > From paul.sandoz at oracle.com Tue Oct 29 04:15:17 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 29 Oct 2013 12:15:17 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> <526E5C8D.4090207@oracle.com> <526E783F.9000400@oracle.com> <58EFC177-B24E-4B8D-9ADF-68A89E7E8248@oracle.com> Message-ID: <1678C316-2923-4AA9-B9F5-BB9BA0FED11E@oracle.com> On Oct 28, 2013, at 6:01 PM, Paul Sandoz wrote: > On Oct 28, 2013, at 5:15 PM, Paul Sandoz wrote: >> >>> >>> Hmmm. Quite strange. Have to evaluate it. >>> >> >> Doh head hits desk. I forgot that vm flags were not propagated via the options builder to the forked java process: >> >> .jvmArgs("-XX:-TieredCompilation -Dbenchmark.n=" + n) >> >> grrr... sorry for the noise. Re-running... >> > > N = 100_000 > Benchmark Mode Thr Cnt Sec Mean Mean error Units > l.StreamSumTest.testStreamPar avgt 1 100 1 39.105 0.317 us/op > l.StreamSumTest.testStreamSeq avgt 1 100 1 486.373 1.516 us/op > > > N = 1_000_000 > Benchmark Mode Thr Cnt Sec Mean Mean error Units > l.StreamSumTest.testStreamPar avgt 1 100 1 174.094 8.515 us/op > l.StreamSumTest.testStreamSeq avgt 1 100 1 4877.512 18.542 us/op > > > Now i am suspicious of the sequential numbers :-) While i would like to believe them my laptop has only eight hardware threads so 12x and 28x speed ups are highly suspicious. > > When looking at the sequential iterations (see below) i notice a slow down which kicks in after a number of iterations On further investigation the JIT compiler is kicking in on stream construction related methods at a later point, which for sequential evaluation is having a negative effect (the jmh "-prof hs_comp" and HotSpot -XX:+PrintCompilation options are very handy in combination with a smaller sample time and increased iterations to better observe when the jump occurs and correlate with HotSpot activity, also -XX:CompileThreshold was useful as well). Using the following compiler options: -XX:-TieredCompilation -XX:CompileCommandFile=.hotspot_compiler $ cat .hotspot_compiler exclude java/util/stream/AbstractPipeline evaluate I now get this result: Benchmark Mode Thr Cnt Sec Mean Mean error Units o.m.s.ForLoopSum100K.sequential avgt 1 20 1 43.097 0.115 us/op o.m.s.IntStreamSum100K.parallel avgt 1 20 1 40.090 0.892 us/op o.m.s.IntStreamSum100K.sequential avgt 1 20 1 45.711 0.136 us/op o.m.s.IntStreamSum1M.parallel avgt 1 20 1 153.193 3.281 us/op o.m.s.IntStreamSum1M.sequential avgt 1 20 1 453.525 1.135 us/op o.m.s.IntStreamSum5M.parallel avgt 1 20 1 863.744 6.092 us/op o.m.s.IntStreamSum5M.sequential avgt 1 20 1 2354.732 11.270 us/op which is much more reasonable. Why did i choose to exclude AbstractPipeline.evaluate from compilation? there is a HotSpot related bug associated with that method. Perhaps it is just coincidence, or just the "age of aquarius" :-) I have yet to try excluding other methods. However, it does suggest there might be some errant behaviour in the HotSpot compiler. Paul. From mcnepp02 at googlemail.com Tue Oct 29 08:40:46 2013 From: mcnepp02 at googlemail.com (Gernot Neppert) Date: Tue, 29 Oct 2013 16:40:46 +0100 Subject: default methods in interfaces In-Reply-To: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> References: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> Message-ID: 2013/10/29 Paul Sandoz > > > In terms of patterns for this kind of usage, i don't have a clear answer. > I expect some may evolve over time as developers evolve and implement new > interfaces that provide certain mix-in behaviour. Note that we have been > careful not to add the @FunctionalInteface annotation to all interfaces > that could be used as the target type of lambda expressions and method > references. In certain cases such non-annotated interfaces are more > intended to provide mix-in behaviour, so there is clue where to look and > watch. > > I'd like to know whether the proposals that I made (see http://mail.openjdk.java.net/pipermail/lambda-libs-spec-observers/2013-July/002288.html ) have been considered? The latest snapshot looks unchanged in this respect, so I'll just re-post the observations that I made in July. I'm really curious whether any of the proposals below have been considered and why they have been rejected: 1. The only 'Listener-style' classes annotated with @FunctionalInterface are java.util.prefs.PreferenceChangeListener and Thread.UncaughtExceptionHandler. I tend to think that all single-method Listener interface match the intention of a functional interface, an obvious example being java.beans.PropertyChangeListener and many of the java.awt EventListeners. 2. java.util.Comparable is annotated with @FunctionalInterface. This seems wrong to me. While technically being a functional interface, it cannot be used a a stateless function. Rather, it always has to be implemented by data-bearing classes. I cannot think of a reason to encourage conversion of lambda expressions to stand-alone java.util.Comparables. 3. java.io.Closeable is annotated with @FunctionalInterface.This is similar to java.util.Comparable: Stateful classes usually implement java.util.Closeable as a 'trait'. Stand-alone Closeables created from lambda expressions will be extremly rare. 4. java.util.concurrent.Callable is not annotated with @FunctionalInterface, even though it is certainly being used as a function! From pbenedict at apache.org Tue Oct 29 08:53:25 2013 From: pbenedict at apache.org (Paul Benedict) Date: Tue, 29 Oct 2013 10:53:25 -0500 Subject: default methods in interfaces In-Reply-To: References: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> Message-ID: Gernot, see this thread to see if your issue was partially or fully addressed: http://mail.openjdk.java.net/pipermail/core-libs-dev/2013-October/022416.html Paul On Tue, Oct 29, 2013 at 10:40 AM, Gernot Neppert wrote: > 2013/10/29 Paul Sandoz > > > > > > > In terms of patterns for this kind of usage, i don't have a clear answer. > > I expect some may evolve over time as developers evolve and implement new > > interfaces that provide certain mix-in behaviour. Note that we have been > > careful not to add the @FunctionalInteface annotation to all interfaces > > that could be used as the target type of lambda expressions and method > > references. In certain cases such non-annotated interfaces are more > > intended to provide mix-in behaviour, so there is clue where to look and > > watch. > > > > > I'd like to know whether the proposals that I made (see > > > http://mail.openjdk.java.net/pipermail/lambda-libs-spec-observers/2013-July/002288.html > ) > > have been considered? The latest snapshot looks unchanged in this respect, > so I'll just re-post the observations that I made in July. I'm really > curious whether any of the proposals below have been considered and why > they have been rejected: > > 1. The only 'Listener-style' classes annotated with @FunctionalInterface > are > java.util.prefs.PreferenceChangeListener and > Thread.UncaughtExceptionHandler. > I tend to think that all single-method Listener interface match the > intention of a functional interface, an obvious example being > java.beans.PropertyChangeListener and many of the java.awt EventListeners. > > 2. java.util.Comparable is annotated with @FunctionalInterface. > This seems wrong to me. While technically being a functional interface, it > cannot be used a a stateless function. Rather, it always has to be > implemented by data-bearing classes. > I cannot think of a reason to encourage conversion of lambda expressions to > stand-alone java.util.Comparables. > > 3. java.io.Closeable is annotated with @FunctionalInterface.This is similar > to java.util.Comparable: > Stateful classes usually implement java.util.Closeable as a 'trait'. > Stand-alone Closeables created from lambda expressions will be extremly > rare. > > 4. java.util.concurrent.Callable is not annotated with > @FunctionalInterface, even though it is certainly being used as a function! > > -- Cheers, Paul From brian.goetz at oracle.com Tue Oct 29 09:02:35 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 29 Oct 2013 12:02:35 -0400 Subject: default methods in interfaces In-Reply-To: References: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> Message-ID: <526FDC1B.7000504@oracle.com> Yes, see: https://bugs.openjdk.java.net/browse/JDK-8022658 On 10/29/2013 11:40 AM, Gernot Neppert wrote: > 2013/10/29 Paul Sandoz > >> >> >> In terms of patterns for this kind of usage, i don't have a clear answer. >> I expect some may evolve over time as developers evolve and implement new >> interfaces that provide certain mix-in behaviour. Note that we have been >> careful not to add the @FunctionalInteface annotation to all interfaces >> that could be used as the target type of lambda expressions and method >> references. In certain cases such non-annotated interfaces are more >> intended to provide mix-in behaviour, so there is clue where to look and >> watch. >> >> > I'd like to know whether the proposals that I made (see > > http://mail.openjdk.java.net/pipermail/lambda-libs-spec-observers/2013-July/002288.html > ) > > have been considered? The latest snapshot looks unchanged in this respect, > so I'll just re-post the observations that I made in July. I'm really > curious whether any of the proposals below have been considered and why > they have been rejected: > > 1. The only 'Listener-style' classes annotated with @FunctionalInterface are > java.util.prefs.PreferenceChangeListener and > Thread.UncaughtExceptionHandler. > I tend to think that all single-method Listener interface match the > intention of a functional interface, an obvious example being > java.beans.PropertyChangeListener and many of the java.awt EventListeners. > > 2. java.util.Comparable is annotated with @FunctionalInterface. > This seems wrong to me. While technically being a functional interface, it > cannot be used a a stateless function. Rather, it always has to be > implemented by data-bearing classes. > I cannot think of a reason to encourage conversion of lambda expressions to > stand-alone java.util.Comparables. > > 3. java.io.Closeable is annotated with @FunctionalInterface.This is similar > to java.util.Comparable: > Stateful classes usually implement java.util.Closeable as a 'trait'. > Stand-alone Closeables created from lambda expressions will be extremly > rare. > > 4. java.util.concurrent.Callable is not annotated with > @FunctionalInterface, even though it is certainly being used as a function! > From zhong.j.yu at gmail.com Tue Oct 29 12:27:54 2013 From: zhong.j.yu at gmail.com (Zhong Yu) Date: Tue, 29 Oct 2013 14:27:54 -0500 Subject: default methods in interfaces In-Reply-To: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> References: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> Message-ID: On Tue, Oct 29, 2013 at 4:05 AM, Paul Sandoz wrote: > Hi Mohan, > > The primary use-case for default methods is to evolve interfaces without breaking compatibility [*]. Without such a mechanism we would not have been able to evolve the Collections API and integrate it with the Streams API. > > See section 10 of: > > http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html > > What you are asking may have been discussed before, search here: > > http://openjdk.markmail.org/search/?q=lambda-dev > > Default methods can be used as a limited form of traits to mix-in behaviour but not state, so they ain't like Scala's traits. Any state (or context) needs to be passed as parameters to those methods. Also note that because there is no state then there are no state-realted issues associated multiple Usually an interface with default methods is stateful, e.g. List; it's just a slightly extra work for subclass to provide the actual storage space. We may traits like interfaces for example interface Colored abstract Color getColor(); abstract void setColor(Color color); default void trasformColor(...)... A default method can also access `this` to obtain useful information, for example interface Logger default void log(String msg) Class logCatetory = this.getClass(); Completely stateless interfaces and default methods could also prove useful, for example interface Math default int max(int x, int y)... inheritance (Java already has multiple inheritance of types; default methods add some additional inheritance rules for resolving conflicts, but fundamentally they are inherited like other methods). > > In terms of patterns for this kind of usage, i don't have a clear answer. I Yes, we'll have to wait to see what people can come up with when they exploit the combination of these new tools. Zhong Yu expect some may evolve over time as developers evolve and implement new interfaces that provide certain mix-in behaviour. Note that we have been careful not to add the @FunctionalInteface annotation to all interfaces that could be used as the target type of lambda expressions and method references. In certain cases such non-annotated interfaces are more intended to provide mix-in behaviour, so there is clue where to look and watch. > > Hth, > Paul. > > [*] Note that there is still a small risk that the methods added will clash with methods on implementing classes or other interfaces. > > On Oct 29, 2013, at 8:15 AM, mohan.radhakrishnan at polarisft.com wrote: > >> Hi, >> There is no user list and this is a basic question. The default >> methods in interfaces are being used to implement 'MixIn' classes(AspectJ >> does it by weaving classes ) and some references even mention multiple >> inheritance. What is the general design pattern in application code that >> this is intended for ? Is this related to functional programming styles >> in some way ? >> >> Should I just search older threads for this type of discussion ? >> >> Thanks, >> Mohan >> >> >> This e-Mail may contain proprietary and confidential information and is sent for the intended recipient(s) only. If by an addressing or transmission error this mail has been misdirected to you, you are requested to delete this mail immediately. You are also hereby notified that any use, any form of reproduction, dissemination, copying, disclosure, modification, distribution and/or publication of this e-mail message, contents or its attachment other than by its intended recipient/s is strictly prohibited. >> >> Visit us at http://www.polarisFT.com >> > > > > From paul.sandoz at oracle.com Tue Oct 29 12:49:38 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Tue, 29 Oct 2013 20:49:38 +0100 Subject: default methods in interfaces In-Reply-To: References: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> Message-ID: <8FE791D5-D67D-45DB-837F-DC0C4E6CCDD4@oracle.com> On Oct 29, 2013, at 8:27 PM, Zhong Yu wrote: > On Tue, Oct 29, 2013 at 4:05 AM, Paul Sandoz wrote: >> Hi Mohan, >> >> The primary use-case for default methods is to evolve interfaces without breaking compatibility [*]. Without such a mechanism we would not have been able to evolve the Collections API and integrate it with the Streams API. >> >> See section 10 of: >> >> http://cr.openjdk.java.net/~briangoetz/lambda/lambda-state-final.html >> >> What you are asking may have been discussed before, search here: >> >> http://openjdk.markmail.org/search/?q=lambda-dev >> >> Default methods can be used as a limited form of traits to mix-in behaviour but not state, so they ain't like Scala's traits. Any state (or context) needs to be passed as parameters to those methods. Also note that because there is no state then there are no state-realted issues associated multiple > > Usually an interface with default methods is stateful, e.g. List; IMHO that is a rather misleading way of stating things (pun intended). I think it important to differentiate between the interface and implementations of, otherwise it's just gonna confuse people. Paul. From brian.goetz at oracle.com Tue Oct 29 12:53:01 2013 From: brian.goetz at oracle.com (Brian Goetz) Date: Tue, 29 Oct 2013 15:53:01 -0400 Subject: default methods in interfaces In-Reply-To: References: <497B9BD0-95A7-45B7-9C3D-E0B5B65BC0C3@oracle.com> Message-ID: <5270121D.106@oracle.com> >> Default methods can be used as a limited form of traits to mix-in behaviour but not state, so they ain't like Scala's traits. Any state (or context) needs to be passed as parameters to those methods. Also note that because there is no state then there are no state-realted issues associated multiple > > Usually an interface with default methods is stateful, e.g. List; it's > just a slightly extra work for subclass to provide the actual storage > space. We may traits like interfaces for example > > interface Colored > abstract Color getColor(); > abstract void setColor(Color color); > default void trasformColor(...)... We call this the "virtual field pattern". In C++ parlance, using this pattern gets you the equivalent of virtual base classes. Because interface methods must be public, though, this ends up leaking your state to clients, which is sometimes OK but often not. Use sparingly. From paul.sandoz at oracle.com Wed Oct 30 07:33:11 2013 From: paul.sandoz at oracle.com (Paul Sandoz) Date: Wed, 30 Oct 2013 15:33:11 +0100 Subject: Performance regression with IntStream.parallel.sum? In-Reply-To: <1678C316-2923-4AA9-B9F5-BB9BA0FED11E@oracle.com> References: <20118A78-38EE-4E93-B1A1-E8D9DBFF9177@itemis.de> <3C82D205-6115-42AA-B7F4-7B579A3D372F@oracle.com> <526E5C8D.4090207@oracle.com> <526E783F.9000400@oracle.com> <58EFC177-B24E-4B8D-9ADF-68A89E7E8248@oracle.com> <1678C316-2923-4AA9-B9F5-BB9BA0FED11E@oracle.com> Message-ID: <63D91C9F-5735-48FB-AE85-D3C26C396690@oracle.com> On Oct 29, 2013, at 12:15 PM, Paul Sandoz wrote: > > On Oct 28, 2013, at 6:01 PM, Paul Sandoz wrote: > >> On Oct 28, 2013, at 5:15 PM, Paul Sandoz wrote: >>> >>>> >>>> Hmmm. Quite strange. Have to evaluate it. >>>> >>> >>> Doh head hits desk. I forgot that vm flags were not propagated via the options builder to the forked java process: >>> >>> .jvmArgs("-XX:-TieredCompilation -Dbenchmark.n=" + n) >>> >>> grrr... sorry for the noise. Re-running... >>> >> >> N = 100_000 >> Benchmark Mode Thr Cnt Sec Mean Mean error Units >> l.StreamSumTest.testStreamPar avgt 1 100 1 39.105 0.317 us/op >> l.StreamSumTest.testStreamSeq avgt 1 100 1 486.373 1.516 us/op >> >> >> N = 1_000_000 >> Benchmark Mode Thr Cnt Sec Mean Mean error Units >> l.StreamSumTest.testStreamPar avgt 1 100 1 174.094 8.515 us/op >> l.StreamSumTest.testStreamSeq avgt 1 100 1 4877.512 18.542 us/op >> >> >> Now i am suspicious of the sequential numbers :-) While i would like to believe them my laptop has only eight hardware threads so 12x and 28x speed ups are highly suspicious. >> >> When looking at the sequential iterations (see below) i notice a slow down which kicks in after a number of iterations > > On further investigation the JIT compiler is kicking in on stream construction related methods at a later point, which for sequential evaluation is having a negative effect (the jmh "-prof hs_comp" and HotSpot -XX:+PrintCompilation options are very handy in combination with a smaller sample time and increased iterations to better observe when the jump occurs and correlate with HotSpot activity, also -XX:CompileThreshold was useful as well). > > Using the following compiler options: > > -XX:-TieredCompilation -XX:CompileCommandFile=.hotspot_compiler > > $ cat .hotspot_compiler > exclude java/util/stream/AbstractPipeline evaluate > > I now get this result: > > Benchmark Mode Thr Cnt Sec Mean Mean error Units > o.m.s.ForLoopSum100K.sequential avgt 1 20 1 43.097 0.115 us/op > o.m.s.IntStreamSum100K.parallel avgt 1 20 1 40.090 0.892 us/op > o.m.s.IntStreamSum100K.sequential avgt 1 20 1 45.711 0.136 us/op > o.m.s.IntStreamSum1M.parallel avgt 1 20 1 153.193 3.281 us/op > o.m.s.IntStreamSum1M.sequential avgt 1 20 1 453.525 1.135 us/op > o.m.s.IntStreamSum5M.parallel avgt 1 20 1 863.744 6.092 us/op > o.m.s.IntStreamSum5M.sequential avgt 1 20 1 2354.732 11.270 us/op > > which is much more reasonable. > > Why did i choose to exclude AbstractPipeline.evaluate from compilation? there is a HotSpot related bug associated with that method. Perhaps it is just coincidence, or just the "age of aquarius" :-) I have yet to try excluding other methods. However, it does suggest there might be some errant behaviour in the HotSpot compiler. > I think i found the cause. The problem is due to inlining limitations. When the JIT compiles a method, such as IntPipeline.reduce, and inlines calling methods and methods they call etc, it is very aggressive about inlining. Unfortunately the hottest piece of code deeper down in the stack (namely that of Spliterator.OfInt.forEachRemaining) gets partially inlined and effectively de-optimized, since max inline limit is reached. If i up the max inline level (e.g. -XX:MaxInlineLevel=11) then there is no measured slow down. Paul. From brian.goetz at oracle.com Thu Oct 31 11:09:19 2013 From: brian.goetz at oracle.com (brian.goetz at oracle.com) Date: Thu, 31 Oct 2013 18:09:19 +0000 Subject: hg: lambda/lambda/langtools: Restore serialization-testing-support patch dropped by previous merge Message-ID: <20131031181009.4456B62888@hg.openjdk.java.net> Changeset: be4bcbd410e9 Author: briangoetz Date: 2013-10-31 14:07 -0400 URL: http://hg.openjdk.java.net/lambda/lambda/langtools/rev/be4bcbd410e9 Restore serialization-testing-support patch dropped by previous merge ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java