From wdietl at gmail.com Sun Feb 3 23:32:44 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 04 Feb 2013 07:32:44 +0000 Subject: hg: type-annotations/type-annotations/langtools: 12 new changesets Message-ID: <20130204073322.744D2477D3@hg.openjdk.java.net> Changeset: bec996065c45 Author: darcy Date: 2013-01-31 18:58 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/bec996065c45 8007351: Malformed copyright statements in typeAnnotations test directory Reviewed-by: jjg ! test/tools/javac/annotations/typeAnnotations/TargetTypes.java ! test/tools/javac/annotations/typeAnnotations/TypeProcOnly.java ! test/tools/javac/annotations/typeAnnotations/api/AnnotatedArrayOrder.java ! test/tools/javac/annotations/typeAnnotations/api/ArrayCreationTree.java ! test/tools/javac/annotations/typeAnnotations/api/ArrayPositionConsistency.java ! test/tools/javac/annotations/typeAnnotations/classfile/ClassfileTestHelper.java ! test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java ! test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java ! test/tools/javac/annotations/typeAnnotations/classfile/NewTypeArguments.java ! test/tools/javac/annotations/typeAnnotations/classfile/NoTargetAnnotations.java ! test/tools/javac/annotations/typeAnnotations/classfile/TypeCasts.java ! test/tools/javac/annotations/typeAnnotations/classfile/Wildcards.java ! test/tools/javac/annotations/typeAnnotations/failures/target/DotClass.java ! test/tools/javac/annotations/typeAnnotations/newlocations/Varargs.java ! test/tools/javac/annotations/typeAnnotations/packageanno/PackageProcessor.java ! test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/Anno.java ! test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/MyClass.java ! test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/package-info.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassExtends.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassTypeParam.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Constructors.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Driver.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ExceptionParameters.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Fields.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/FromSpecification.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReceivers.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReturns.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodThrows.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodTypeParam.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/NestedTypes.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/NewObjects.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/RepeatingTypeAnnotations.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeTests.java Changeset: 3ab64e4293a1 Author: jjg Date: 2013-01-31 19:19 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/3ab64e4293a1 8007329: minor issues in impl class hierarchry for DCTree.* classes Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/tree/DCTree.java Changeset: 3d97a9a7a82b Author: jjg Date: 2013-01-31 19:31 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/3d97a9a7a82b 8004353: Generated html is wrong for overview.html; content has incorrect css footer class Reviewed-by: jjg Contributed-by: roger.riggs at oracle.com ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java Changeset: 04216b77b79f Author: wmdietl Date: 2013-01-31 23:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/04216b77b79f Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! test/tools/javac/annotations/typeAnnotations/TargetTypes.java ! test/tools/javac/annotations/typeAnnotations/TypeProcOnly.java ! test/tools/javac/annotations/typeAnnotations/api/AnnotatedArrayOrder.java ! test/tools/javac/annotations/typeAnnotations/api/ArrayCreationTree.java ! test/tools/javac/annotations/typeAnnotations/api/ArrayPositionConsistency.java ! test/tools/javac/annotations/typeAnnotations/classfile/ClassfileTestHelper.java ! test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java ! test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java ! test/tools/javac/annotations/typeAnnotations/classfile/NewTypeArguments.java ! test/tools/javac/annotations/typeAnnotations/classfile/NoTargetAnnotations.java ! test/tools/javac/annotations/typeAnnotations/classfile/TypeCasts.java ! test/tools/javac/annotations/typeAnnotations/classfile/Wildcards.java ! test/tools/javac/annotations/typeAnnotations/failures/target/DotClass.java ! test/tools/javac/annotations/typeAnnotations/newlocations/Varargs.java ! test/tools/javac/annotations/typeAnnotations/packageanno/PackageProcessor.java ! test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/Anno.java ! test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/MyClass.java ! test/tools/javac/annotations/typeAnnotations/packageanno/mypackage/package-info.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassExtends.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ClassTypeParam.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Constructors.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Driver.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ExceptionParameters.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Fields.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/FromSpecification.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReceivers.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodReturns.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodThrows.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodTypeParam.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/NestedTypes.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/NewObjects.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/RepeatingTypeAnnotations.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeTests.java Changeset: 8590c20af3ce Author: jjg Date: 2013-02-01 08:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/8590c20af3ce 8007306: DPrinter: improve display of impl-class, internal tag/kind, and external tag/kind Reviewed-by: mcimadamore ! test/tools/javac/lib/DPrinter.java Changeset: 6df931ce1a81 Author: jjg Date: 2013-02-01 08:36 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/6df931ce1a81 8007305: DPrinter: provide better usage message Reviewed-by: mcimadamore ! test/tools/javac/lib/DPrinter.java Changeset: 0b1c88705568 Author: jjg Date: 2013-02-01 12:01 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/0b1c88705568 8007344: javac may not make tree end positions and/or doc comments available to processors and listeners Reviewed-by: darcy ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java + test/tools/javac/api/8007344/Test.java Changeset: 55cca2f38ee6 Author: darcy Date: 2013-02-01 13:01 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/55cca2f38ee6 8001614: Include annotation type to documented supported-ness Reviewed-by: alanb, jjg, tbell ! make/Makefile-classic ! make/build.properties + src/share/classes/jdk/Supported.java Changeset: 4cc73ec94686 Author: vromero Date: 2013-02-02 21:04 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/4cc73ec94686 8005075: Pool.Method, and Pool.Variable redundant Symbol field should be removed Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/jvm/Pool.java Changeset: a51a8dac0a2f Author: vromero Date: 2013-02-03 02:31 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/a51a8dac0a2f 7199823: javac generates inner class that can't be verified Reviewed-by: jjg, mcimadamore ! src/share/classes/com/sun/tools/javac/comp/Lower.java + test/tools/javac/7199823/InnerClassCannotBeVerified.java Changeset: 890f6b09b189 Author: wmdietl Date: 2013-02-02 18:41 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/890f6b09b189 Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! make/build.properties ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Lower.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/main/JavaCompiler.java Changeset: 93c9048ce673 Author: wmdietl Date: 2013-02-03 23:30 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/93c9048ce673 Multiple annotations in an array or inner type position must not cause repeating the type annotation position. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java From wdietl at gmail.com Sun Feb 3 23:33:42 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 04 Feb 2013 07:33:42 +0000 Subject: hg: type-annotations/type-annotations/jdk: 13 new changesets Message-ID: <20130204073652.8B342477D4@hg.openjdk.java.net> Changeset: d2495b9984fa Author: weijun Date: 2013-02-01 07:39 +0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/d2495b9984fa 8006564: Test sun/security/util/Oid/S11N.sh fails with timeout on Linux 32-bit Reviewed-by: alanb + test/sun/security/util/Oid/S11N.java - test/sun/security/util/Oid/S11N.sh - test/sun/security/util/Oid/SerialTest.java Changeset: 17b643956999 Author: chegar Date: 2013-02-01 06:51 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/17b643956999 8006395: Race in async socket close on Linux Reviewed-by: alanb, dsamersoff ! src/solaris/native/java/net/linux_close.c + test/java/net/Socket/asyncClose/Race.java Changeset: ea8f3ca83501 Author: ksrini Date: 2013-02-01 07:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ea8f3ca83501 8006536: [launcher] removes trailing slashes on arguments Reviewed-by: ksrini, akhil Contributed-by: jviswana at linux.vnet.ibm.com ! src/windows/bin/cmdtoargs.c ! test/tools/launcher/Arrrghs.java Changeset: 5e47ee4d7196 Author: alanb Date: 2013-02-01 21:01 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/5e47ee4d7196 5035569: Formatter should document that %a conversion unsupported for BigDecimal args Reviewed-by: darcy Contributed-by: brian.burkhalter at oracle.com ! src/share/classes/java/util/Formatter.java Changeset: cba578db5f39 Author: darcy Date: 2013-02-01 19:30 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/cba578db5f39 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder Reviewed-by: shade ! src/share/classes/java/lang/Double.java Changeset: c1aaa8451547 Author: ksrini Date: 2013-02-01 22:12 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c1aaa8451547 8003549: (pack200) assertion errors when processing lambda class files with IMethods Summary: add more check for opcode, sketch provided by jrose Reviewed-by: jrose ! src/share/classes/com/sun/java/util/jar/pack/Attribute.java ! src/share/classes/com/sun/java/util/jar/pack/ClassReader.java ! src/share/classes/com/sun/java/util/jar/pack/ConstantPool.java ! src/share/classes/com/sun/java/util/jar/pack/Instruction.java ! src/share/classes/com/sun/java/util/jar/pack/PackageWriter.java ! src/share/classes/com/sun/java/util/jar/pack/PackerImpl.java ! src/share/classes/com/sun/java/util/jar/pack/PropMap.java ! src/share/classes/com/sun/java/util/jar/pack/Utils.java ! test/ProblemList.txt + test/tools/pack200/InstructionTests.java ! test/tools/pack200/pack200-verifier/src/xmlkit/ClassReader.java Changeset: 6c88a12ea834 Author: ksrini Date: 2013-02-01 22:18 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/6c88a12ea834 8007428: [launcher] add tools/launcher/FXLauncherTest.java to ProblemList.txt Reviewed-by: mchung ! test/ProblemList.txt Changeset: ee83319029a5 Author: chegar Date: 2013-02-02 17:15 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ee83319029a5 8007322: untangle ftp protocol from general networking URL tests Reviewed-by: alanb ! test/java/net/URL/Constructor.java ! test/java/net/URL/HandlerLoop.java ! test/java/net/URL/Test.java ! test/java/net/URL/URIToURLTest.java - test/java/net/URL/abnormal_http_urls - test/java/net/URL/ftp_urls - test/java/net/URL/jar_urls - test/java/net/URL/normal_http_urls - test/java/net/URL/runconstructor.sh - test/java/net/URL/share_file_urls - test/java/net/URL/win32_file_urls ! test/java/net/URLConnection/RequestProperties.java ! test/java/net/URLConnection/RequestPropertyValues.java + test/sun/net/ftp/EncDec.doc + test/sun/net/ftp/MarkResetTest.java + test/sun/net/ftp/MarkResetTest.sh - test/sun/net/www/EncDec.doc - test/sun/net/www/MarkResetTest.java - test/sun/net/www/MarkResetTest.sh ! test/sun/net/www/http/HttpClient/ProxyTest.java Changeset: 25831e7009c4 Author: ksrini Date: 2013-02-02 12:08 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/25831e7009c4 8007135: tools/launcher/VersionCheck.java failing with new tool jabswitch Reviewed-by: ksrini, mduigou Contributed-by: ragini.prasad at oracle.com ! test/tools/launcher/VersionCheck.java Changeset: 2f8c8c4061d3 Author: wmdietl Date: 2013-02-02 18:42 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/2f8c8c4061d3 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk Changeset: 308d1362b60a Author: dmeetry Date: 2013-02-03 18:20 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/308d1362b60a 6471906: java.lang.NegativeArraySizeException in tenToThe Reviewed-by: darcy Contributed-by: brian.burkhalter at oracle.com ! src/share/classes/java/math/BigDecimal.java Changeset: 962d6612cace Author: dsamersoff Date: 2013-02-03 21:39 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/962d6612cace 8002048: Protocol to discovery of manageable Java processes on a network Summary: Introduce a protocol to discover manageble Java instances across a network subnet, JDP Reviewed-by: sla, dfuchs ! src/share/classes/sun/management/Agent.java + src/share/classes/sun/management/jdp/JdpBroadcaster.java + src/share/classes/sun/management/jdp/JdpController.java + src/share/classes/sun/management/jdp/JdpException.java + src/share/classes/sun/management/jdp/JdpGenericPacket.java + src/share/classes/sun/management/jdp/JdpJmxPacket.java + src/share/classes/sun/management/jdp/JdpPacket.java + src/share/classes/sun/management/jdp/JdpPacketReader.java + src/share/classes/sun/management/jdp/JdpPacketWriter.java + src/share/classes/sun/management/jdp/package-info.java + test/sun/management/jdp/JdpClient.java + test/sun/management/jdp/JdpDoSomething.java + test/sun/management/jdp/JdpTest.sh + test/sun/management/jdp/JdpUnitTest.java Changeset: f5ee3383fbd4 Author: wmdietl Date: 2013-02-03 23:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/f5ee3383fbd4 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk From wdietl at gmail.com Sun Feb 3 23:58:14 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sun, 3 Feb 2013 23:58:14 -0800 Subject: Type Annotations RI update Message-ID: - I diagnosed and fixed a problem with annotations in array component and inner type positions: they ARRAY or INNER_TYPE tag was repeated for each occurring annotation - leading to wrong type positions. The fix is here: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/93c9048ce673 It would be great if SQE could add a combo-test for more syntactic locations. I fixed two other small issues: http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-January/000519.html http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-January/000521.html These can be reviewed for a push to TL. - Last Wednesday I described my understanding of the way AnnotatedTypes are constructed: http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-January/000535.html I am awaiting comments on how to proceed. - I spent some time investigating why we are generating TypeCompounds with UNKNOWN positions. I reverted my prototype, but it improved my understanding and when we work on the above point we can resolve those issues. - I think it would be good to finalize javax.lang.model soon. My understanding is that Joel is working on this. Is this right? Did we decide whether we will introduce TypeKind.ANNOTATED? In code that uses TypeKind.isPrimitive an annotated primitive type won't be transparent. That is, asking "@TA int" whether it is primitive will return false. - To me a method reference receiver seems like a scoping mechanism, not a type use. I tried a few examples and asked Mike for clarifications. cu, WMD. -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Mon Feb 4 02:20:45 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 4 Feb 2013 02:20:45 -0800 Subject: Error count propagation between rounds In-Reply-To: <50B3C47C.5010105@oracle.com> References: <50A156A3.30207@oracle.com> <50A479F8.40207@oracle.com> <50A47E7E.9090101@oracle.com> <50B3C47C.5010105@oracle.com> Message-ID: Jon, did your experiments with removing separate Log instances work? Was this integrated into TL and I missed it? cu, WMD. On Mon, Nov 26, 2012 at 11:35 AM, Jonathan Gibbons wrote: > Superficially, the changes look good -- so good that I'm trying them out as > a candidate for a separate fix in TL/langtools. > > However, as good as they are, I think they can be made better. By fixing the > bugs you have found, I think you have eliminated the last remaining reasons > why we use a separate instance of a Log for each round of processing. > Therefore, I think it may be possible to eliminate Log.initRound, and simply > propogate the single Log object from round to round, as exemplified in > JavacProcessingEnvironment.Round.nextContext(), such as this: > > Tokens tokens = Tokens.instance(context); > Assert.checkNonNull(tokens); > next.put(Tokens.tokensKey, tokens); > > I'm trying that out now. > > -- Jon > > > On 11/19/2012 02:14 AM, Werner Dietl wrote: >> >> Jon, all, >> >> please have a look at: >> >> >> http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/8466f6bcab55 >> >> I made some changes to JavacProcessingEnvironment and needed to >> adapted only a few test cases. >> To me the changes in the test cases make sense. >> >> Our build currently has 4 errors, see: >> >> >> http://buffalo.cs.washington.edu:8080/job/type-annotations-langtools/lastBuild/console >> >> T8000484.java and CheckExamples.java seem to be related to Lambda. >> Only TestSmoke.java is related to JSR 308. It will be resolved after >> the bytecode changes. >> That is, all existing tests for annotation processing and error >> propagation pass with this change. >> >> Please do let me know what you think of the error propagation changes. >> >> cu, WMD. >> >> >> >> On Wed, Nov 14, 2012 at 9:32 PM, Jonathan Gibbons >> wrote: >>> >>> OK, let me know. >>> >>> -- Jon >>> >>> >>> >>> On 11/14/2012 09:30 PM, Werner Dietl wrote: >>>> >>>> Jon, >>>> >>>> I'm not quite sure simply propagating nerrors is working correctly >>>> yet. Sometimes this causes errors to be counted multiple times, it >>>> seems. >>>> >>>> How about the following: I go through all failures and for each see >>>> whether I think the expected output should be fixed or whether >>>> something else needs work. >>>> If I think the output needs adapting, I'll push such changes. >>>> I'll send a message with the test cases where I'm not happy with the >>>> results and we can discuss how to proceed. >>>> >>>> Thanks, >>>> cu, WMD. >>>> >>>> On Wed, Nov 14, 2012 at 9:13 PM, Jonathan Gibbons >>>> wrote: >>>>> >>>>> Werner, >>>>> >>>>> Yes, at the time that we did a lot of cleanup in >>>>> JavacProcessingEnvironment >>>>> in JDK 7, we were not significantly using the technique of propogating >>>>> so >>>>> much information between rounds, and it led to the curiousity you've >>>>> observed where the identical error was reported twice and counted once, >>>>> with >>>>> no apparent solution at that time. >>>>> >>>>> Now that we are propogating more info between rounds, your solution is >>>>> elegant and the one I would have suggested myself. >>>>> >>>>> I would suggest that this is applied as a standalone fix to TL and >>>>> pulled >>>>> down into the type-annotations forest. Do you want to create that >>>>> patch, >>>>> or >>>>> should I? >>>>> >>>>> -- Jon >>>>> >>>>> >>>>> >>>>> On 11/14/2012 08:54 PM, Werner Dietl wrote: >>>>>> >>>>>> Jon, >>>>>> >>>>>> thanks for that update. >>>>>> This sounds like you agree that the behavior I described with Java 7 >>>>>> is incorrect and should be fixed. >>>>>> Will somebody from the javac group suggest a better fix than what I >>>>>> did in type-annotations? >>>>>> >>>>>> Thanks, >>>>>> cu, WMD. >>>>>> >>>>>> On Mon, Nov 12, 2012 at 12:05 PM, Jonathan Gibbons >>>>>> wrote: >>>>>>> >>>>>>> Currently, the policy is that unrecoverable errors should be >>>>>>> reported, >>>>>>> and >>>>>>> go to the error count. They should cause round processing to stop. >>>>>>> It >>>>>>> may >>>>>>> be the case that some errors are reported twice, which would be a >>>>>>> bug, >>>>>>> separate from the total number of bugs reported. >>>>>>> >>>>>>> Recoverable errors should be suppressed, and do not terminate round >>>>>>> processing. >>>>>>> >>>>>>> Generally speaking, only "name not found" errors are classified as >>>>>>> recoverable errors, since they may be generated by additional rounds >>>>>>> of >>>>>>> processing. >>>>>>> >>>>>>> -- Jon >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 11/12/2012 11:11 AM, Werner Dietl wrote: >>>>>>>> >>>>>>>> Dear all, >>>>>>>> >>>>>>>> in one of my recent pushes, in particular, in: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b7f384a554b3 >>>>>>>> >>>>>>>> I introduced that the nerrors information is propagated between >>>>>>>> rounds. >>>>>>>> >>>>>>>> This fixed three test case errors I've been having, but also >>>>>>>> introduced 19 new ones. >>>>>>>> I would like to discuss what the best solution to this issue is. >>>>>>>> >>>>>>>> To illustrate my point, let us take stock Java 7 (javac 1.7.0_09) >>>>>>>> and >>>>>>>> JDK 8 Build b63 and the two attached files, which are based on >>>>>>>> langtools/test/tools/javac/api/6406133. >>>>>>>> >>>>>>>> (I ignore the single warning that is caused by the processor version >>>>>>>> mismatch. The result is the same if I adapt the version number for >>>>>>>> each compiler.) >>>>>>>> >>>>>>>> Let's first compile the processor, without output: >>>>>>>> javac SimpleProc.java >>>>>>>> >>>>>>>> Then, let's normally compile file Erroneous.java: >>>>>>>> $ javac Erroneous.java >>>>>>>> Erroneous.java:2: error: cannot find symbol >>>>>>>> class A extends Missing { >>>>>>>> ^ >>>>>>>> symbol: class Missing >>>>>>>> 1 error >>>>>>>> >>>>>>>> I would say that's the expected output. >>>>>>>> >>>>>>>> Now, let's add the annotation processor: >>>>>>>> >>>>>>>> $ javac -processor SimpleProc Erroneous.java >>>>>>>> Processing: [java.lang.Deprecated] >>>>>>>> Processing: [] >>>>>>>> Erroneous.java:2: error: cannot find symbol >>>>>>>> class A extends Missing { >>>>>>>> ^ >>>>>>>> symbol: class Missing >>>>>>>> Erroneous.java:2: error: cannot find symbol >>>>>>>> class A extends Missing { >>>>>>>> ^ >>>>>>>> symbol: class Missing >>>>>>>> 1 error >>>>>>>> >>>>>>>> Isn't it strange that we get two error outputs and just one error >>>>>>>> count? >>>>>>>> The return value $? is 1, which is expected for an error. >>>>>>>> >>>>>>>> Finally, if we compile with "-proc:only" we get: >>>>>>>> >>>>>>>> $ javac -processor SimpleProc -proc:only Erroneous.java >>>>>>>> Processing: [java.lang.Deprecated] >>>>>>>> Processing: [] >>>>>>>> Erroneous.java:2: error: cannot find symbol >>>>>>>> class A extends Missing { >>>>>>>> ^ >>>>>>>> symbol: class Missing >>>>>>>> >>>>>>>> We get only one error output, but suddenly no longer the "1 error" >>>>>>>> output. Also, $? is 0, indicating that there was no error. >>>>>>>> With -proc:only maybe semantic errors shouldn't be reported, because >>>>>>>> that phase is after processing. However, then I would not expect to >>>>>>>> see an error message. >>>>>>>> >>>>>>>> The order of the output is different between a JDK 6 and JDK 7, but >>>>>>>> the basic behavior is the same. >>>>>>>> >>>>>>>> With JDK 8 Build b63 from Nov 1 I get the same behavior as with Java >>>>>>>> 7, that is, 2 error messages but a failed compile with a processor, >>>>>>>> a >>>>>>>> single error message and a successful compile with proc:only. >>>>>>>> >>>>>>>> With my pushed changes, we get the following behavior: >>>>>>>> >>>>>>>> javac -cp . -processor SimpleProc Erroneous.java >>>>>>>> Processing: [java.lang.Deprecated] >>>>>>>> Processing: [] >>>>>>>> Erroneous.java:25: error: cannot find symbol >>>>>>>> class A extends Missing { >>>>>>>> ^ >>>>>>>> symbol: class Missing >>>>>>>> 1 error >>>>>>>> $? is 1 >>>>>>>> >>>>>>>> javac -cp . -processor SimpleProc -proc:only Erroneous.java >>>>>>>> Processing: [java.lang.Deprecated] >>>>>>>> Processing: [] >>>>>>>> Erroneous.java:25: error: cannot find symbol >>>>>>>> class A extends Missing { >>>>>>>> ^ >>>>>>>> symbol: class Missing >>>>>>>> 1 error >>>>>>>> $? is 1 >>>>>>>> >>>>>>>> The difference is made by the line: >>>>>>>> this.nerrors = other.nerrors; >>>>>>>> in >>>>>>>> com.sun.tools.javac.util.Log.initRound(Log) >>>>>>>> >>>>>>>> With setting nerrors we get: >>>>>>>> >>>>>>>> [jtreg] Test results: passed: 2,409; failed: 19 >>>>>>>> >>>>>>>> Without setting nerros we get: >>>>>>>> >>>>>>>> [jtreg] Test results: passed: 2,425; failed: 3 >>>>>>>> >>>>>>>> I don't know how to better fix the 3 remaining errors without >>>>>>>> setting >>>>>>>> nerrors. They are caused by executing Flow processing with an >>>>>>>> inconsistent AST, resulting in NPEs. >>>>>>>> >>>>>>>> I think some of the 19 errors can be fixed by admitting the "x >>>>>>>> errors" >>>>>>>> output in the expected file. >>>>>>>> Simply setting nerrors however seems to be incorrect in general, as >>>>>>>> it >>>>>>>> causes errors to be counted multiple times. >>>>>>>> Is there a way to decide whether to propagate the error count or >>>>>>>> not? >>>>>>>> Should -proc:only make a difference in this decision? >>>>>>>> >>>>>>>> All comments for how to better solve this problem would be very >>>>>>>> welcome. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> cu, WMD. >>>>>>>> >>>> >> >> > -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Mon Feb 4 09:12:25 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Mon, 04 Feb 2013 09:12:25 -0800 Subject: type annotations inside javac In-Reply-To: References: <5109CB42.4050006@oracle.com> Message-ID: <510FEBF9.3040606@oracle.com> On 01/30/2013 06:33 PM, Werner Michael Dietl wrote: > I think it would be good to perform separateAnnotationsKinds earlier, > but I don't know what the best spot for this would be. > By performing the separation earlier, I hope that the AnnotatedType > gets propagated to more places and giving us a consistent view of the > types - regardless of whether the AST contained an AnnotatedTypeTree. When is separateAnnotationKinds called now? I would think that, for signatures, it needs to be called from the Annotate code that is executed at the end of MemberEnter. Obviously, for method bodies it cannot be called until later. -- Jon From wdietl at gmail.com Mon Feb 4 11:39:09 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 4 Feb 2013 11:39:09 -0800 Subject: type annotations inside javac In-Reply-To: <510FEBF9.3040606@oracle.com> References: <5109CB42.4050006@oracle.com> <510FEBF9.3040606@oracle.com> Message-ID: >> I think it would be good to perform separateAnnotationsKinds earlier, >> but I don't know what the best spot for this would be. >> By performing the separation earlier, I hope that the AnnotatedType >> gets propagated to more places and giving us a consistent view of the >> types - regardless of whether the AST contained an AnnotatedTypeTree. > > > When is separateAnnotationKinds called now? It's called from com.sun.tools.javac.code.TypeAnnotations.organizeTypeAnnotationsSignatures(Symtab, Names, Log, JCClassDecl) and com.sun.tools.javac.code.TypeAnnotations.organizeTypeAnnotationsBodies(Symtab, Names, Log, JCClassDecl) The first one is called from com.sun.tools.javac.comp.MemberEnter.complete(Symbol) and put on a queue in Annotate. Is this the location you mean with "at the end of MemberEnter"? cu, WMD. > I would think that, for signatures, it needs to be called from the > Annotate code that is executed at the end of MemberEnter. > Obviously, for method bodies it cannot be called until later. > > -- Jon > -- http://www.google.com/profiles/wdietl From charlie.wang at oracle.com Mon Feb 4 17:32:10 2013 From: charlie.wang at oracle.com (Charlie Wang) Date: Tue, 05 Feb 2013 09:32:10 +0800 Subject: reflection SQE test In-Reply-To: References: Message-ID: <5110611A.9030608@oracle.com> Hi, Sorry for the mass mail. I've created some SQE functional tests for type annotation reflection? I wonder where I should publish them. And I was unable to find descriptions for some new APIs with return type - byte[] (e.g. Class.getExecutableTypeAnnotationBytes(Executable ex)). Could someone kindly direct me to where I can get them? Greatly appreciate your help. Regards, Charlie From jonathan.gibbons at oracle.com Mon Feb 4 18:17:10 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Mon, 04 Feb 2013 18:17:10 -0800 Subject: reflection SQE test In-Reply-To: <5110611A.9030608@oracle.com> References: <5110611A.9030608@oracle.com> Message-ID: <51106BA6.1090708@oracle.com> On 02/04/2013 05:32 PM, Charlie Wang wrote: > Hi, > Sorry for the mass mail. I've created some SQE functional tests for > type annotation reflection? I wonder where I should publish them. And > I was unable to find descriptions for some new APIs with return type - > byte[] (e.g. Class.getExecutableTypeAnnotationBytes(Executable ex)). > Could someone kindly direct me to where I can get them? Greatly > appreciate your help. > > > Regards, > Charlie Start by publishing the tests on cr.openjdk.java.net. -- Jon From wdietl at gmail.com Mon Feb 4 22:26:20 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 05 Feb 2013 06:26:20 +0000 Subject: hg: type-annotations/type-annotations/langtools: 4 new changesets Message-ID: <20130205062635.E23D54781A@hg.openjdk.java.net> Changeset: a68471ba3e22 Author: wmdietl Date: 2013-02-04 22:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/a68471ba3e22 Process method parameters only once, in visitMethodDef. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java Changeset: 1690928dc560 Author: jjg Date: 2013-02-04 15:30 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/1690928dc560 8007490: NPE from DocumentationTool.run Reviewed-by: darcy ! src/share/classes/com/sun/tools/javadoc/api/JavadocTool.java ! test/tools/javadoc/api/basic/RunTest.java Changeset: 62d91c13dce2 Author: jjg Date: 2013-02-04 18:14 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/62d91c13dce2 8007492: DocumentationTool cannot locate standard doclet when invoked from JRE Reviewed-by: darcy ! src/share/classes/com/sun/tools/javadoc/api/JavadocTool.java Changeset: 3fcca1749c1f Author: wmdietl Date: 2013-02-04 22:26 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/3fcca1749c1f Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools From wdietl at gmail.com Tue Feb 5 13:58:27 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 05 Feb 2013 21:58:27 +0000 Subject: hg: type-annotations/type-annotations/langtools: 6 new changesets Message-ID: <20130205215850.EC0BE4784F@hg.openjdk.java.net> Changeset: 2de82c961dcc Author: wmdietl Date: 2013-02-05 15:48 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/2de82c961dcc Clarify and expand a comment. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java Changeset: 257b779bc4c7 Author: wmdietl Date: 2013-02-05 15:55 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/257b779bc4c7 Implement type annotations for method and constructor reference type arguments. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java + test/tools/javac/annotations/typeAnnotations/newlocations/Lambda.java + test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java Changeset: 716935fec613 Author: katleman Date: 2013-01-31 17:04 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/716935fec613 Added tag jdk8-b75 for changeset c2e11e2ec4a3 ! .hgtags Changeset: 10619513f51a Author: lana Date: 2013-02-04 22:38 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/10619513f51a Merge Changeset: 2480aec9a3f1 Author: jjh Date: 2013-02-05 18:55 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/2480aec9a3f1 8007504: Remove @ignore from tests that no longer need it Reviewed-by: mcimadamore ! test/tools/javac/api/T6306137.java ! test/tools/javac/defaultMethods/TestNoBridgeOnDefaults.java ! test/tools/javac/lambda/LambdaCapture06.java ! test/tools/javac/lambda/LambdaExpr15.java Changeset: 48210e3920d6 Author: wmdietl Date: 2013-02-05 15:55 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/48210e3920d6 Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! .hgtags From wdietl at gmail.com Tue Feb 5 14:00:18 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 05 Feb 2013 22:00:18 +0000 Subject: hg: type-annotations/type-annotations/hotspot: 2 new changesets Message-ID: <20130205220031.BA14547850@hg.openjdk.java.net> Changeset: 20b605466ccb Author: katleman Date: 2013-01-31 17:04 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/20b605466ccb Added tag jdk8-b75 for changeset 6778d0b16593 ! .hgtags Changeset: 660fac4222df Author: wmdietl Date: 2013-02-05 16:00 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/660fac4222df Automated merge with http://hg.openjdk.java.net/jdk8/tl/hotspot ! .hgtags From wdietl at gmail.com Tue Feb 5 14:01:31 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 05 Feb 2013 22:01:31 +0000 Subject: hg: type-annotations/type-annotations: 2 new changesets Message-ID: <20130205220131.D8E2947851@hg.openjdk.java.net> Changeset: 5b19cef637a6 Author: katleman Date: 2013-01-31 17:04 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/5b19cef637a6 Added tag jdk8-b75 for changeset 2a713921952c ! .hgtags Changeset: 3bc3f048261e Author: wmdietl Date: 2013-02-05 16:01 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/3bc3f048261e Automated merge with http://hg.openjdk.java.net/jdk8/tl/ ! .hgtags From wdietl at gmail.com Tue Feb 5 13:59:09 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 05 Feb 2013 21:59:09 +0000 Subject: hg: type-annotations/type-annotations/jdk: 9 new changesets Message-ID: <20130205220200.6DE2447852@hg.openjdk.java.net> Changeset: 5bf1c9e6be60 Author: vinnie Date: 2013-02-04 17:20 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/5bf1c9e6be60 8006994: Cleanup PKCS12 tests to ensure streams get closed Reviewed-by: mullan ! test/java/security/KeyStore/PBETest.java ! test/sun/security/pkcs12/StorePasswordTest.java ! test/sun/security/pkcs12/StoreSecretKeyTest.java ! test/sun/security/pkcs12/StoreTrustedCertTest.java Changeset: e202f43a8b8a Author: sherman Date: 2013-02-04 11:58 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/e202f43a8b8a 8006295: Base64.Decoder.wrap(java.io.InputStream) returns InputStream which throws unspecified IOException on attempt to decode invalid Base64 byte stream 8006315: Base64.Decoder decoding methods are not consistent in treating non-padded data 8006530: Base64.getMimeDecoder().decode() throws exception for non-base64 character after adding = Summary: updated the spec to describe the expected behave explicitly and the implementation to follow Reviewed-by: alanb, chegar, lancea ! src/share/classes/java/util/Base64.java ! test/java/util/Base64/TestBase64.java Changeset: e04467fa13af Author: darcy Date: 2013-02-04 17:56 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/e04467fa13af 8007113: Upgrade AnnotatedElement.isAnnotionPresent to be a default method Reviewed-by: chegar, jfranck ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/Package.java ! src/share/classes/java/lang/reflect/AccessibleObject.java ! src/share/classes/java/lang/reflect/AnnotatedElement.java ! src/share/classes/java/lang/reflect/Parameter.java ! src/share/classes/sun/reflect/annotation/AnnotatedTypeFactory.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java Changeset: 6ba6353ab42c Author: katleman Date: 2013-01-31 17:04 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/6ba6353ab42c Added tag jdk8-b75 for changeset 4a67fdb752b7 ! .hgtags Changeset: fd37f0846653 Author: lana Date: 2013-02-04 22:37 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/fd37f0846653 Merge Changeset: 9ffcd758e2be Author: jbachorik Date: 2013-02-05 12:28 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/9ffcd758e2be 7170447: Intermittent DeadListenerTest.java failure Summary: Due to asynchronous nature of processing server notifications it may happen that an "unregister" notification ha$ Reviewed-by: sjiang ! test/javax/management/remote/mandatory/notif/DeadListenerTest.java Changeset: 3119f0ebb58d Author: jbachorik Date: 2013-02-05 12:36 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/3119f0ebb58d 8005791: Remove java.beans.* imports from com.sun.jmx.mbeanserver.Introspector Reviewed-by: rbackman ! src/share/classes/com/sun/jmx/mbeanserver/Introspector.java Changeset: e526277b51be Author: vinnie Date: 2013-02-05 14:25 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/e526277b51be 8007483: attributes are ignored when loading keys from a PKCS12 keystore Reviewed-by: mullan ! src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! test/sun/security/pkcs12/StorePasswordTest.java Changeset: a08c944f3921 Author: wmdietl Date: 2013-02-05 15:59 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/a08c944f3921 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk ! .hgtags ! src/share/classes/java/lang/Class.java ! src/share/classes/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java From wdietl at gmail.com Tue Feb 5 14:03:33 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 05 Feb 2013 22:03:33 +0000 Subject: hg: type-annotations/type-annotations/corba: 2 new changesets Message-ID: <20130205220336.5A1E847853@hg.openjdk.java.net> Changeset: 4a6be02e66a3 Author: katleman Date: 2013-01-31 17:04 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/4a6be02e66a3 Added tag jdk8-b75 for changeset d4e68ce17795 ! .hgtags Changeset: 6568209ebf4f Author: wmdietl Date: 2013-02-05 16:03 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/6568209ebf4f Automated merge with http://hg.openjdk.java.net/jdk8/tl/corba ! .hgtags From wdietl at gmail.com Tue Feb 5 14:03:53 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 05 Feb 2013 22:03:53 +0000 Subject: hg: type-annotations/type-annotations/jaxp: 3 new changesets Message-ID: <20130205220405.B751E47855@hg.openjdk.java.net> Changeset: 8d65b381880b Author: katleman Date: 2013-01-31 17:04 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxp/rev/8d65b381880b Added tag jdk8-b75 for changeset ff0b73a6b3f6 ! .hgtags Changeset: f0ad3747b40e Author: emc Date: 2013-02-05 14:56 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxp/rev/f0ad3747b40e 8007389: Remove uses of _ as identifier in jaxp Reviewed-by: lancea, joehw ! src/javax/xml/validation/SchemaFactoryFinder.java ! src/javax/xml/xpath/XPathFactoryFinder.java Changeset: 7f50a0b371d3 Author: wmdietl Date: 2013-02-05 16:03 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxp/rev/7f50a0b371d3 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jaxp ! .hgtags From wdietl at gmail.com Tue Feb 5 14:04:23 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 05 Feb 2013 22:04:23 +0000 Subject: hg: type-annotations/type-annotations/jaxws: 2 new changesets Message-ID: <20130205220430.BCBB947856@hg.openjdk.java.net> Changeset: a63ef2391c20 Author: katleman Date: 2013-01-31 17:04 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/a63ef2391c20 Added tag jdk8-b75 for changeset 966bf9f3c41a ! .hgtags Changeset: b4428cff2bcc Author: wmdietl Date: 2013-02-05 16:04 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/b4428cff2bcc Automated merge with http://hg.openjdk.java.net/jdk8/tl/jaxws ! .hgtags From wdietl at gmail.com Tue Feb 5 14:19:41 2013 From: wdietl at gmail.com (Werner Dietl) Date: Tue, 5 Feb 2013 14:19:41 -0800 Subject: Type Annotations and Lambda Message-ID: Dear all, I implemented method and constructor reference type arguments (METHOD_REFERENCE_TYPE_ARGUMENT and CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT) in this changeset: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/257b779bc4c7 This resolves the crash noticed by Steve and implements correct bytecode storage. More extensive tests would be great. I no longer manage to crash the compiler with any type annotation uses in lambda. I am waiting on a specification clarification from Mike and/or Alex about METHOD_REFERENCE_RECEIVER and CONSTRUCTOR_REFERENCE_RECEIVER. To me these don't look like type uses, but instead only like scoping mechanisms, for which we don't support type annotations. It would be great to see a few examples of type uses for these and what the interpretation of type annotations should be. Finally, the spec says that type annotations in the signature or body of a lambda expression should appear in the method that results from translation. I was hoping that this would work without any special effort. However, no type annotations appear in a translated method. Could somebody point me to the location in the code that translates a lambda expression into a method? Thanks, cu, WMD. -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Tue Feb 5 14:21:43 2013 From: wdietl at gmail.com (Werner Dietl) Date: Tue, 5 Feb 2013 14:21:43 -0800 Subject: type annotation on lambda method reference crashes javac In-Reply-To: <510722C3.6070909@oracle.com> References: <510722C3.6070909@oracle.com> Message-ID: Hi Steve, thanks for this test case! I now implemented and pushed method/constructor reference type arguments and all crashes should be removed. Please expand and push your test cases for lambda and let me know whether you see any problems. Thanks, cu, WMD. On Mon, Jan 28, 2013 at 5:15 PM, Steve Sides wrote: > Hi Werner, > This may be addressed with the rest of type-annotations + lambda, but so > far most type annotations on lambda epxression are ignored. > This one crashes javac. > > Compile TAlambda2.java below. Error message and stack trace is below the > code. > > -steve > > import java.lang.annotation.*; > import static java.lang.annotation.RetentionPolicy.*; > import static java.lang.annotation.ElementType.*; > > public class TAlambda2 { > > public void test() { > Integer[] intarray = { new Integer(1), new Integer(2), new > Integer(3) }; > printArray(intarray, TPrint::<@A String>print); > } > > public void printArray(Object[] oa, PrintString ps) { > for(Object o : oa ) ps.print(o.toString()); > } > > public static void main(String... args) { > new TAlambda2().test(); > } > } > > interface PrintString { void print(String s); } > > class TPrint { > public static void print(T msg) { > System.out.println("TPrint: " + msg.toString()); > } > } > > @Retention(RUNTIME) > @Target({TYPE_USE}) > @interface A {} > > Error message and stack trace: > > An exception has occurred in the compiler (1.8.0-ea). Please file a bug at > the Java Developer Connection (http://java.sun.com/webapps/bugreport) > after checking the Bug Parade for duplicates. Include your program and the > following diagnostic in your report. Thank you. > java.lang.AssertionError: Unresolved frame: TPrint::< @A() String>print of > kind: MEMBER_REFERENCE > Looking for tree: @A() String > at com.sun.tools.javac.util.Assert.error(Assert.java:133) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:796) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:757) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.findPosition(TypeAnnotations.java:1025) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitAnnotatedType(TypeAnnotations.java:964) > at > com.sun.tools.javac.tree.JCTree$JCAnnotatedType.accept(JCTree.java:2330) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) > at > com.sun.tools.javac.tree.TreeScanner.visitReference(TreeScanner.java:268) > at > com.sun.tools.javac.tree.JCTree$JCMemberReference.accept(JCTree.java:1931) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) > at > com.sun.tools.javac.tree.TreeScanner.visitApply(TreeScanner.java:199) > at > com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1440) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135) > at > com.sun.tools.javac.tree.TreeScanner.visitExec(TreeScanner.java:174) > at > com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1271) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitBlock(TypeAnnotations.java:957) > at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:884) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitMethodDef(TypeAnnotations.java:901) > at > com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:771) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitClassDef(TypeAnnotations.java:843) > at > com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:135) > at > com.sun.tools.javac.code.TypeAnnotations.organizeTypeAnnotationsBodies(TypeAnnotations.java:102) > at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4096) > at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:3975) > at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:3909) > at com.sun.tools.javac.comp.Attr.attrib(Attr.java:3883) > at > com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1254) > at > com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:907) > at > com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:866) > at com.sun.tools.javac.main.Main.compile(Main.java:506) > at com.sun.tools.javac.main.Main.compile(Main.java:365) > at com.sun.tools.javac.main.Main.compile(Main.java:354) > at com.sun.tools.javac.main.Main.compile(Main.java:345) > at com.sun.tools.javac.Main.compile(Main.java:76) > at com.sun.tools.javac.Main.main(Main.java:61) > -- http://www.google.com/profiles/wdietl From maurizio.cimadamore at oracle.com Tue Feb 5 14:52:16 2013 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Tue, 05 Feb 2013 22:52:16 +0000 Subject: Type Annotations and Lambda In-Reply-To: References: Message-ID: <51118D20.9000906@oracle.com> On 05/02/13 22:19, Werner Dietl wrote: > Dear all, > > I implemented method and constructor reference type arguments > (METHOD_REFERENCE_TYPE_ARGUMENT and > CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT) in this changeset: > > http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/257b779bc4c7 > > This resolves the crash noticed by Steve and implements correct > bytecode storage. > More extensive tests would be great. I no longer manage to crash the > compiler with any type annotation uses in lambda. > > I am waiting on a specification clarification from Mike and/or Alex > about METHOD_REFERENCE_RECEIVER and CONSTRUCTOR_REFERENCE_RECEIVER. > To me these don't look like type uses, but instead only like scoping > mechanisms, for which we don't support type annotations. > It would be great to see a few examples of type uses for these and > what the interpretation of type annotations should be. There are several kinds of method references - the so-called unbound kind has a type as a qualifier - i.e. Person::getName Constructor references also have a type as a qualifier: ArrayList::new I don't have specific ideas on what type annotations on such elements would be - but perhaps, if an annotation is put i.e. on the type of a qualifier of a method reference it could be used by a checker as a way to 'filter' the set of valid types that can be used as a target for this expression? > > Finally, the spec says that type annotations in the signature or body > of a lambda expression should appear in the method that results from > translation. > I was hoping that this would work without any special effort. However, > no type annotations appear in a translated method. > Could somebody point me to the location in the code that translates a > lambda expression into a method? This is the place: http://hg.openjdk.java.net/jdk8/jdk8/langtools/file/tip/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java > > Thanks, > cu, WMD. > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/type-annotations-dev/attachments/20130205/6871befc/attachment.html From wdietl at gmail.com Tue Feb 5 15:54:43 2013 From: wdietl at gmail.com (Werner Dietl) Date: Tue, 5 Feb 2013 15:54:43 -0800 Subject: Type Annotations and Lambda In-Reply-To: <51118D20.9000906@oracle.com> References: <51118D20.9000906@oracle.com> Message-ID: Hi Maurizio, > I am waiting on a specification clarification from Mike and/or Alex > about METHOD_REFERENCE_RECEIVER and CONSTRUCTOR_REFERENCE_RECEIVER. > To me these don't look like type uses, but instead only like scoping > mechanisms, for which we don't support type annotations. > It would be great to see a few examples of type uses for these and > what the interpretation of type annotations should be. > > There are several kinds of method references - the so-called unbound kind > has a type as a qualifier - i.e. > > Person::getName In which context can I use the unbounded kind? When I try static Runnable returnLambda1() { return Test::getName; } I get: Test.java:25: error: incompatible types: invalid method reference; non-static method getName() cannot be referenced from a static context return Test::getName; ^ 1 error > Constructor references also have a type as a qualifier: > > ArrayList::new Why don't I get a warning about raw types in this example: static Runnable returnLambda1() { return ArrayList::new; } Even when I compile with -Xlint:all I don't get a warning about the raw type. This is the reason why I assumed that this is not really a type use, but only the class name to select the constructor from that class - not from a particular instantiation of the class. Is the "raw type" warning missing or am I misunderstanding? > Finally, the spec says that type annotations in the signature or body > of a lambda expression should appear in the method that results from > translation. > I was hoping that this would work without any special effort. However, > no type annotations appear in a translated method. > Could somebody point me to the location in the code that translates a > lambda expression into a method? > > This is the place: > > http://hg.openjdk.java.net/jdk8/jdk8/langtools/file/tip/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java Thanks! I'll take a look and will get back with any questions. cu, WMD. -- http://www.google.com/profiles/wdietl From alex.buckley at oracle.com Tue Feb 5 17:43:55 2013 From: alex.buckley at oracle.com (Alex Buckley) Date: Tue, 05 Feb 2013 17:43:55 -0800 Subject: Type Annotations and Lambda In-Reply-To: References: Message-ID: <5111B55B.5040701@oracle.com> On 2/5/2013 2:19 PM, Werner Dietl wrote: > I am waiting on a specification clarification from Mike and/or Alex > about METHOD_REFERENCE_RECEIVER and CONSTRUCTOR_REFERENCE_RECEIVER. > To me these don't look like type uses, but instead only like scoping > mechanisms, for which we don't support type annotations. > It would be great to see a few examples of type uses for these and > what the interpretation of type annotations should be. Neither I nor the Expert Group was aware of this concern. Please mail type-annotations-spec-comments. Alex From maurizio.cimadamore at oracle.com Wed Feb 6 01:54:17 2013 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Wed, 06 Feb 2013 09:54:17 +0000 Subject: Type Annotations and Lambda In-Reply-To: References: <51118D20.9000906@oracle.com> Message-ID: <51122849.2060205@oracle.com> On 05/02/13 23:54, Werner Dietl wrote: > Hi Maurizio, > >> I am waiting on a specification clarification from Mike and/or Alex >> about METHOD_REFERENCE_RECEIVER and CONSTRUCTOR_REFERENCE_RECEIVER. >> To me these don't look like type uses, but instead only like scoping >> mechanisms, for which we don't support type annotations. >> It would be great to see a few examples of type uses for these and >> what the interpretation of type annotations should be. >> >> There are several kinds of method references - the so-called unbound kind >> has a type as a qualifier - i.e. >> >> Person::getName > In which context can I use the unbounded kind? When I try > > static Runnable returnLambda1() { > return Test::getName; > } > > I get: > > Test.java:25: error: incompatible types: invalid method reference; > non-static method getName() cannot be referenced from a static context > return Test::getName; > ^ > 1 error The target type must be a SAM whose descriptor accepts an extra argument with the receiver type i.e. interface Bar { void m(Person p) } Here's where the annotation might come in handy - i.e. you could define pair of annotations, and allow an unbound method reference only if the target has a matching annotation on the receiver parameter. > > >> Constructor references also have a type as a qualifier: >> >> ArrayList::new > Why don't I get a warning about raw types in this example: > > static Runnable returnLambda1() { > return ArrayList::new; > } > > Even when I compile with -Xlint:all I don't get a warning about the raw type. > This is the reason why I assumed that this is not really a type use, > but only the class name to select the constructor from that class - > not from a particular instantiation of the class. > Is the "raw type" warning missing or am I misunderstanding? This is as specified. No raw types involved here. Inference is doing its job and inferring ArrayList. > > >> Finally, the spec says that type annotations in the signature or body >> of a lambda expression should appear in the method that results from >> translation. >> I was hoping that this would work without any special effort. However, >> no type annotations appear in a translated method. >> Could somebody point me to the location in the code that translates a >> lambda expression into a method? >> >> This is the place: >> >> http://hg.openjdk.java.net/jdk8/jdk8/langtools/file/tip/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java > Thanks! I'll take a look and will get back with any questions. > > cu, WMD. > From steve.sides at oracle.com Wed Feb 6 10:15:32 2013 From: steve.sides at oracle.com (Steve Sides) Date: Wed, 06 Feb 2013 10:15:32 -0800 Subject: "failures" tests don't necessarily test type annotations Message-ID: <51129DC4.9090606@oracle.com> I (just now) noticed that many of the tests in typeAnnotations/failures use jdk7 target set and not TYPE_USE. /* * @test * @bug 6843077 8006775 * @summary test type annotation on void generic methods * @author Mahmood Ali * @compile/fail VoidGenericMethod.java */ class VoidGenericMethod { public @A void method() { } } @interface A { } For instance, the above from VoidGenericMethod.java says it tests "type annotation on void generic methods" but tests a regular annotation. I'm guessing these tests were written for a build in which TYPE_USE (and TYPE_PARAMETER) were included in the default set(???). @Target(TYPE_USE) @interface A { } So these don't really test negative uses of type annotations but regular uses. Shouldn't these be corrected to use type annotations? -steve From wdietl at gmail.com Wed Feb 6 12:11:31 2013 From: wdietl at gmail.com (Werner Dietl) Date: Wed, 6 Feb 2013 14:11:31 -0600 Subject: "failures" tests don't necessarily test type annotations In-Reply-To: <51129DC4.9090606@oracle.com> References: <51129DC4.9090606@oracle.com> Message-ID: Hi Steve, thanks for noticing this issue! Yes, the default changed at some point and maybe not all tests were adapted to this. I probably only investigated failing tests and updated them. I just pushed the fix for VoidGenericMethod. Notice how a declaration annotation wasn't allowed in that particular location, so the test failed as expected. I moved the annotation to where a declaration annotation would be legal, to make the distinction clearer. But you might want to refactor the test to use an expected output file. Please feel free to update this in other tests or point me to them. cu, WMD. On Wed, Feb 6, 2013 at 12:15 PM, Steve Sides wrote: > I (just now) noticed that many of the tests in typeAnnotations/failures use > jdk7 target set and not TYPE_USE. > > /* > * @test > * @bug 6843077 8006775 > * @summary test type annotation on void generic methods > * @author Mahmood Ali > * @compile/fail VoidGenericMethod.java > */ > class VoidGenericMethod { > public @A void method() { } > } > > @interface A { } > > > For instance, the above from VoidGenericMethod.java says it tests "type > annotation on void generic methods" but tests a regular annotation. > I'm guessing these tests were written for a build in which TYPE_USE (and > TYPE_PARAMETER) were included in the default set(???). > > @Target(TYPE_USE) > @interface A { } > > So these don't really test negative uses of type annotations but regular > uses. > Shouldn't these be corrected to use type annotations? > > -steve -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Wed Feb 6 12:16:49 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 06 Feb 2013 12:16:49 -0800 Subject: migrating fixes to tl/langtools Message-ID: <5112BA31.8050102@oracle.com> Werner, What changesets in type-annotations/langtools need to be migrated to tl/langtools? And, how should they be grouped, if at all? -- Jon From joel.franck at oracle.com Thu Feb 7 10:54:54 2013 From: joel.franck at oracle.com (=?iso-8859-1?Q?Joel_Borggr=E9n-Franck?=) Date: Thu, 7 Feb 2013 19:54:54 +0100 Subject: reflection SQE test In-Reply-To: <5110611A.9030608@oracle.com> References: <5110611A.9030608@oracle.com> Message-ID: Hi Charlie, There are some methods that are not public, for example the one you mention. You don't need to write a test for those as they aren't part of the API. cheers /Joel On Feb 5, 2013, at 2:32 AM, Charlie Wang wrote: > Hi, > Sorry for the mass mail. I've created some SQE functional tests for type annotation reflection? I wonder where I should publish them. And I was unable to find descriptions for some new APIs with return type - byte[] (e.g. Class.getExecutableTypeAnnotationBytes(Executable ex)). Could someone kindly direct me to where I can get them? Greatly appreciate your help. > > > Regards, > Charlie From alex.buckley at oracle.com Thu Feb 7 15:40:35 2013 From: alex.buckley at oracle.com (Alex Buckley) Date: Thu, 07 Feb 2013 15:40:35 -0800 Subject: Type Annotations and Lambda In-Reply-To: References: Message-ID: <51143B73.6070004@oracle.com> On 2/5/2013 2:19 PM, Werner Dietl wrote: > I am waiting on a specification clarification from Mike and/or Alex > about METHOD_REFERENCE_RECEIVER and CONSTRUCTOR_REFERENCE_RECEIVER. > To me these don't look like type uses, but instead only like scoping > mechanisms, for which we don't support type annotations. > It would be great to see a few examples of type uses for these and > what the interpretation of type annotations should be. I just spoke with Mike about this, and things are as intended. Suppose I have an interface IntMapper whose single method is "int map(T t)". Then I write: IntMapper<@Vernal Date> x = { @Vernal Date d -> BODY }; int i = x.map(new @Vernal Date()); If I promise that BODY extracts and returns the day from d, then i will be 7, right? Now suppose I write: IntMapper<@Vernal Date> x = @Vernal Date::getDay; int i = x.map(new @Vernal Date()); i will also be 7 here. The method reference expression is just a lambda expression in disguise. "Date" is not a scoping mechanism but rather the type of the first formal parameter of the implicit lambda expression. I concede that "RECEIVER" in the enum constant is confusing. The receiver is really the IntMapper instance. We'll rename those two constants. Alex From wdietl at gmail.com Thu Feb 7 17:52:14 2013 From: wdietl at gmail.com (Werner Dietl) Date: Thu, 7 Feb 2013 17:52:14 -0800 Subject: Type Annotations and Lambda In-Reply-To: <51143B73.6070004@oracle.com> References: <51143B73.6070004@oracle.com> Message-ID: Thanks for the clarifications, Maurizio and Alex! I now have the examples that I needed and am close to finishing the implementation of that part. cu, WMD. On Thu, Feb 7, 2013 at 3:40 PM, Alex Buckley wrote: > On 2/5/2013 2:19 PM, Werner Dietl wrote: >> >> I am waiting on a specification clarification from Mike and/or Alex >> about METHOD_REFERENCE_RECEIVER and CONSTRUCTOR_REFERENCE_RECEIVER. >> To me these don't look like type uses, but instead only like scoping >> mechanisms, for which we don't support type annotations. >> It would be great to see a few examples of type uses for these and >> what the interpretation of type annotations should be. > > > I just spoke with Mike about this, and things are as intended. > > Suppose I have an interface IntMapper whose single method is "int map(T > t)". Then I write: > > IntMapper<@Vernal Date> x = { @Vernal Date d -> BODY }; > int i = x.map(new @Vernal Date()); > > If I promise that BODY extracts and returns the day from d, then i will be > 7, right? Now suppose I write: > > IntMapper<@Vernal Date> x = @Vernal Date::getDay; > int i = x.map(new @Vernal Date()); > > i will also be 7 here. The method reference expression is just a lambda > expression in disguise. "Date" is not a scoping mechanism but rather the > type of the first formal parameter of the implicit lambda expression. > > I concede that "RECEIVER" in the enum constant is confusing. The receiver is > really the IntMapper instance. We'll rename those two constants. > > Alex -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Sat Feb 9 00:51:28 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sat, 09 Feb 2013 08:51:28 +0000 Subject: hg: type-annotations/type-annotations/jdk: 10 new changesets Message-ID: <20130209085415.DC1AB47976@hg.openjdk.java.net> Changeset: 0e7d5dd84fdf Author: dsamersoff Date: 2013-02-06 16:53 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/0e7d5dd84fdf 8007277: JDK-8002048 testcase fails to compile Summary: sun.* classes is not included to ct.sym file and symbol file have to be ignored Reviewed-by: alanb ! test/sun/management/jdp/JdpTest.sh Changeset: 1574fa3df1c0 Author: lancea Date: 2013-02-06 14:15 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/1574fa3df1c0 8006505: additional changes for JSR 310 support Reviewed-by: naoto, ulfzibis ! src/share/classes/java/sql/JDBCType.java ! src/share/classes/java/sql/SQLInput.java ! src/share/classes/java/sql/SQLOutput.java ! src/share/classes/java/sql/Types.java Changeset: 2f1505c49e79 Author: martin Date: 2013-02-06 17:59 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/2f1505c49e79 8006995: java launcher fails to open executable JAR > 2GB Summary: Use O_LARGEFILE consistently when opening jar files Reviewed-by: alanb, sherman ! src/share/bin/parse_manifest.c Changeset: 2de8c6c2d652 Author: ykantser Date: 2013-02-07 11:22 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/2de8c6c2d652 8007142: Add utility classes for writing better multiprocess tests in jtreg Reviewed-by: alanb, rbackman + test/lib/testlibrary/OutputAnalyzerTest.java + test/lib/testlibrary/jdk/testlibrary/JcmdBase.java + test/lib/testlibrary/jdk/testlibrary/JdkFinder.java + test/lib/testlibrary/jdk/testlibrary/OutputAnalyzer.java + test/lib/testlibrary/jdk/testlibrary/OutputBuffer.java + test/lib/testlibrary/jdk/testlibrary/ProcessTools.java + test/lib/testlibrary/jdk/testlibrary/StreamPumper.java Changeset: 79d7595abe95 Author: naoto Date: 2013-02-08 09:35 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/79d7595abe95 8007038: ArrayIndexOutOfBoundsException on calling localizedDateTime().print() with JapaneseChrono Reviewed-by: okutsu ! src/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java + test/java/util/Calendar/Bug8007038.java Changeset: 522fb3867a3a Author: darcy Date: 2013-02-08 16:00 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/522fb3867a3a 8005623: Retrofit FunctionalInterface annotations to core platform interfaces Reviewed-by: mduigou, chegar, alanb ! src/share/classes/java/io/Closeable.java ! src/share/classes/java/io/FileFilter.java ! src/share/classes/java/io/FilenameFilter.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 ! src/share/classes/java/lang/Runnable.java ! src/share/classes/java/lang/Thread.java ! src/share/classes/java/nio/file/DirectoryStream.java ! src/share/classes/java/nio/file/PathMatcher.java ! src/share/classes/java/util/Comparator.java ! src/share/classes/java/util/function/BinaryOperator.java ! src/share/classes/java/util/function/Block.java ! src/share/classes/java/util/function/DoubleBinaryOperator.java ! src/share/classes/java/util/function/DoubleBlock.java ! src/share/classes/java/util/function/DoubleFunction.java ! src/share/classes/java/util/function/DoubleSupplier.java ! src/share/classes/java/util/function/DoubleUnaryOperator.java ! src/share/classes/java/util/function/Function.java ! src/share/classes/java/util/function/IntBinaryOperator.java ! src/share/classes/java/util/function/IntBlock.java ! src/share/classes/java/util/function/IntFunction.java ! src/share/classes/java/util/function/IntSupplier.java ! src/share/classes/java/util/function/IntUnaryOperator.java ! src/share/classes/java/util/function/LongBinaryOperator.java ! src/share/classes/java/util/function/LongBlock.java ! src/share/classes/java/util/function/LongFunction.java ! src/share/classes/java/util/function/LongSupplier.java ! src/share/classes/java/util/function/LongUnaryOperator.java ! src/share/classes/java/util/function/Predicate.java ! src/share/classes/java/util/function/Supplier.java ! src/share/classes/java/util/function/UnaryOperator.java ! src/share/classes/java/util/logging/Filter.java ! src/share/classes/java/util/prefs/PreferenceChangeListener.java Changeset: 36d25dc2b8f0 Author: dl Date: 2013-02-09 08:35 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/36d25dc2b8f0 8005697: Add StampedLock Reviewed-by: chegar, alanb, dice, martin ! make/java/java/FILES_java.gmk ! src/share/classes/java/util/concurrent/locks/LockSupport.java + src/share/classes/java/util/concurrent/locks/StampedLock.java + test/java/util/concurrent/locks/StampedLock/Basic.java Changeset: d14cd2272b2d Author: weijun Date: 2013-02-09 16:43 +0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/d14cd2272b2d 8001104: Unbound SASL service: the GSSAPI/krb5 mech Reviewed-by: valeriep ! src/share/classes/com/sun/security/auth/module/Krb5LoginModule.java ! src/share/classes/javax/security/auth/kerberos/JavaxSecurityAuthKerberosAccessImpl.java ! src/share/classes/javax/security/auth/kerberos/KeyTab.java ! src/share/classes/sun/security/jgss/LoginConfigImpl.java ! src/share/classes/sun/security/jgss/krb5/Krb5Util.java ! src/share/classes/sun/security/jgss/krb5/ServiceCreds.java ! src/share/classes/sun/security/jgss/krb5/SubjectComber.java ! src/share/classes/sun/security/krb5/JavaxSecurityAuthKerberosAccess.java ! src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java ! src/share/classes/sun/security/provider/ConfigSpiFile.java ! test/sun/security/krb5/ServiceCredsCombination.java ! test/sun/security/krb5/auto/AcceptPermissions.java + test/sun/security/krb5/auto/GSSUnbound.java ! test/sun/security/krb5/auto/OneKDC.java + test/sun/security/krb5/auto/SaslUnbound.java + test/sun/security/krb5/auto/UnboundService.java Changeset: 57cb988c811e Author: weijun Date: 2013-02-09 16:43 +0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/57cb988c811e 8007761: NTLM coding errors Reviewed-by: chegar ! src/share/classes/com/sun/security/ntlm/Client.java ! src/share/classes/com/sun/security/ntlm/NTLM.java Changeset: 50f5fa70df91 Author: wmdietl Date: 2013-02-09 00:50 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/50f5fa70df91 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk From wdietl at gmail.com Sat Feb 9 00:55:28 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sat, 09 Feb 2013 08:55:28 +0000 Subject: hg: type-annotations/type-annotations: 3 new changesets Message-ID: <20130209085529.1812247977@hg.openjdk.java.net> Changeset: 8dd61906da5f Author: chegar Date: 2013-02-06 11:36 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/8dd61906da5f 8007625: race with nested repos in /common/bin/hgforest.sh Reviewed-by: dholmes, ohair, ohrstrom ! common/bin/hgforest.sh ! get_source.sh Changeset: 168dd033604a Author: mduigou Date: 2013-02-06 11:09 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/168dd033604a 8004726: Link bug ids to jbs rather than monaco. Reviewed-by: ohair, chegar, katleman ! make/scripts/webrev.ksh Changeset: 968626c3bae9 Author: wmdietl Date: 2013-02-09 00:55 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/968626c3bae9 Automated merge with http://hg.openjdk.java.net/jdk8/tl/ From wdietl at gmail.com Sat Feb 9 01:21:45 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sat, 9 Feb 2013 01:21:45 -0800 Subject: Improving javap output for annotations Message-ID: The current output from javap -v is quite hard to read when it comes to annotations. For a declaration annotation, it displays: RuntimeInvisibleAnnotations: 0: #29() Similarly, for a complex type annotation, we see: 2: #18(#19=s#20,#21=I#22,#23=[I#24,I#22,I#25]): METHOD_REFERENCE, offset=0, location=[TYPE_ARGUMENT(1)] The value of constant pool references is resolved in other locations - as a comment. For example: 0: invokedynamic #2, 0 // InvokeDynamic #0:lambda:()Ljava/util/function/Function; Would it be possible to implement similar logic for annotations? Or is there an option I'm missing? cu, WMD. -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Sat Feb 9 01:20:07 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sat, 09 Feb 2013 09:20:07 +0000 Subject: hg: type-annotations/type-annotations/langtools: 15 new changesets Message-ID: <20130209092053.80D7F47978@hg.openjdk.java.net> Changeset: b097763b974a Author: wmdietl Date: 2013-02-06 14:08 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b097763b974a Fix test to actually use a type annotation. Note that the declaration annotation isn't allowed after the type parameters, so the test also failed (as expected) and we didn't notice the problem. ! test/tools/javac/annotations/typeAnnotations/failures/VoidGenericMethod.java Changeset: 45cb38e995d0 Author: wmdietl Date: 2013-02-06 16:52 -0600 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/45cb38e995d0 Fix typo in comment. ! src/share/classes/com/sun/tools/javac/comp/Attr.java Changeset: af8a7d00913b Author: wmdietl Date: 2013-02-09 01:09 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/af8a7d00913b Implement type annotations in method and constructor references. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java Changeset: df1e29438c06 Author: wmdietl Date: 2013-02-09 01:16 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/df1e29438c06 Rename METHOD/CONSTRUCTOR_REFERENCE_RECEIVER to remove the _RECEIVER. ! src/share/classes/com/sun/tools/classfile/ClassWriter.java ! src/share/classes/com/sun/tools/classfile/TypeAnnotation.java ! src/share/classes/com/sun/tools/javac/code/TargetType.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/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javap/AnnotationWriter.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java Changeset: de932285124c Author: jjg Date: 2013-02-05 21:55 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/de932285124c 8007485: test creates .class files in the test/ directory Reviewed-by: mcimadamore ! test/tools/javac/api/8007344/Test.java Changeset: 1df20330f6bd Author: mcimadamore Date: 2013-02-06 14:03 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/1df20330f6bd 8007463: Cleanup inference related classes Summary: Make Infer.InferenceContext an inner class; adjust bound replacement logic in Type.UndetVar 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/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/Infer.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/util/List.java ! test/tools/javac/generics/inference/7154127/T7154127.out ! test/tools/javac/lib/DPrinter.java Changeset: 8cdd96f2fdb9 Author: mcimadamore Date: 2013-02-06 14:04 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/8cdd96f2fdb9 8007479: Refactor DeferredAttrContext so that it points to parent context Summary: Move DeferredAttrNode out of DeferredAttrContext; add support for nested deferred contexts Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java Changeset: 153d20d0cac5 Author: jjg Date: 2013-02-06 07:49 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/153d20d0cac5 8007566: DocLint too aggressive with not allowed here:

Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/doclint/Checker.java + test/tools/doclint/ParaTagTest.java Changeset: b386b8c45387 Author: jjh Date: 2013-02-06 23:10 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b386b8c45387 8007698: jtreg test T6306137.java won't compile with ASCII encoding Reviewed-by: ksrini ! test/tools/javac/api/T6306137.java Changeset: 5125b9854d07 Author: darcy Date: 2013-02-07 20:47 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/5125b9854d07 7195131: Update 2 compiler combo tests for repeating annotations to include package and default use cases Reviewed-by: darcy Contributed-by: sonali.goel at oracle.com ! test/tools/javac/annotations/repeatingAnnotations/combo/Helper.java + test/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java + test/tools/javac/annotations/repeatingAnnotations/combo/TestCaseGenerator.java Changeset: 762d0af062f5 Author: vromero Date: 2013-02-08 09:12 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/762d0af062f5 7166455: javac doesn't set ACC_STRICT bit on for strictfp class Reviewed-by: mcimadamore ! 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/jvm/Gen.java + test/tools/javac/7166455/CheckACC_STRICTFlagOnclinitTest.java Changeset: b1deb90d2e37 Author: vromero Date: 2013-02-08 09:15 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b1deb90d2e37 8005931: javac doesn't set ACC_STRICT for classes with package access Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java + test/tools/javac/8005931/CheckACC_STRICTFlagOnPkgAccessClassTest.java Changeset: 017e8bdd440f Author: vromero Date: 2013-02-08 09:21 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/017e8bdd440f 7167125: Two variables after the same operation in a inner class return different results Reviewed-by: jjg, mcimadamore ! src/share/classes/com/sun/tools/javac/comp/Lower.java + test/tools/javac/7167125/DiffResultAfterSameOperationInnerClasses.java Changeset: 60caf53b98e2 Author: jjg Date: 2013-02-08 17:35 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/60caf53b98e2 8007610: javadoc doclint does not work with -private Reviewed-by: darcy ! src/share/classes/com/sun/tools/javadoc/DocEnv.java ! test/com/sun/javadoc/T6735320/T6735320.java ! test/tools/javadoc/doclint/DocLintTest.java Changeset: bf5536a0a945 Author: wmdietl Date: 2013-02-09 01:17 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/bf5536a0a945 Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! 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/Infer.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/jvm/Gen.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java From jonathan.gibbons at oracle.com Sat Feb 9 09:01:46 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Sat, 09 Feb 2013 09:01:46 -0800 Subject: Improving javap output for annotations In-Reply-To: References: Message-ID: <511680FA.7010907@oracle.com> On 02/09/2013 01:21 AM, Werner Dietl wrote: > The current output from javap -v is quite hard to read when it comes > to annotations. > For a declaration annotation, it displays: > > RuntimeInvisibleAnnotations: > 0: #29() > > Similarly, for a complex type annotation, we see: > > 2: #18(#19=s#20,#21=I#22,#23=[I#24,I#22,I#25]): > METHOD_REFERENCE, offset=0, location=[TYPE_ARGUMENT(1)] > > The value of constant pool references is resolved in other locations - > as a comment. For example: > > 0: invokedynamic #2, 0 // InvokeDynamic > #0:lambda:()Ljava/util/function/Function; > > Would it be possible to implement similar logic for annotations? Or is > there an option I'm missing? > > cu, WMD. > Werner, The annotations attributes are complex, and so it has proved a challenge to come up with a reasonable display for javap to use to show the contents of the annotations. If you have any suggestions, I'd be interested. That being said, a multi-line display similar to that used by the recent DPrinter utility might work well. -- Jon From wdietl at gmail.com Sat Feb 9 18:17:00 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sat, 9 Feb 2013 18:17:00 -0800 Subject: Type Annotations and Lambda In-Reply-To: <51118D20.9000906@oracle.com> References: <51118D20.9000906@oracle.com> Message-ID: Maurizio, all, I implemented type annotations in method references in: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/af8a7d00913b Please have a look at the test cases in: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/file/bf5536a0a945/test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java and let me know whether I missed any syntax. This should complete method/constructor reverences and method/constructor reference type arguments. > Finally, the spec says that type annotations in the signature or body > of a lambda expression should appear in the method that results from > translation. > I was hoping that this would work without any special effort. However, > no type annotations appear in a translated method. > Could somebody point me to the location in the code that translates a > lambda expression into a method? > > This is the place: > > http://hg.openjdk.java.net/jdk8/jdk8/langtools/file/tip/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java I experimented with LambdaToMethod and have two big issues: 1. This phase is run after Translate. Therefore, all generics in lambda bodies are already erased. For example, let's take this simple code: static MyLambda1 getOne() { return (@TA int x) -> { @TB List<@TC Object> l = new @TB ArrayList<@TC Object>(); System.out.println("x: " + (@TC Object) x); }; } In com.sun.tools.javac.comp.LambdaToMethod.visitVarDef(JCVariableDecl) the JCVariableDecl that I see initially is: @TB() List l = new @TB ArrayList(); That is, the type arguments are erased, but at least the type annotation on List is still present. 2. LambdaToMethod does not preserve all type annotations in the tree. At the end of LambdaToMethod the generated method looks like this: /*synthetic*/ private static .void lambda$0(/*synthetic*/ final int x) { /*synthetic*/ final List l = new @TB() ArrayList(); System.out.println("x: " + ( @TC() Object)x); } That is, the code is erased and all type annotations in variable declarations are lost. The type annotations in expressions seem to be preserved, but the types are of course also erased. I think the reason why the type arguments are no longer present is that in visitVarDef the call to "result = make.VarDef" does not consider any annotations that might have been present in the incoming tree. It would probably be easiest if all annotations, declaration or type annotations, were propagated from the incoming tree. Is there a reason why declaration annotations are being ignored? Determining the positions for type annotations in lambdas needs to happen after conversion to a method. However, if all the types are already erased, we would lose all these type annotations. Would it be possible to move the LambdaToMethod phase earlier in the compilation phases? All suggestions and ideas would be very much appreciated. Thanks, cu, WMD. -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Sat Feb 9 18:20:41 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sat, 9 Feb 2013 18:20:41 -0800 Subject: Improving javap output for annotations In-Reply-To: <511680FA.7010907@oracle.com> References: <511680FA.7010907@oracle.com> Message-ID: Jon, I hadn't look at how to implement this - I assumed that performing the substitutions wouldn't be much trouble. I think this would make the javap output for annotations much more readable. cu, WMD. On Sat, Feb 9, 2013 at 9:01 AM, Jonathan Gibbons wrote: > On 02/09/2013 01:21 AM, Werner Dietl wrote: >> >> The current output from javap -v is quite hard to read when it comes >> to annotations. >> For a declaration annotation, it displays: >> >> RuntimeInvisibleAnnotations: >> 0: #29() >> >> Similarly, for a complex type annotation, we see: >> >> 2: #18(#19=s#20,#21=I#22,#23=[I#24,I#22,I#25]): >> METHOD_REFERENCE, offset=0, location=[TYPE_ARGUMENT(1)] >> >> The value of constant pool references is resolved in other locations - >> as a comment. For example: >> >> 0: invokedynamic #2, 0 // InvokeDynamic >> #0:lambda:()Ljava/util/function/Function; >> >> Would it be possible to implement similar logic for annotations? Or is >> there an option I'm missing? >> >> cu, WMD. >> > > Werner, > > The annotations attributes are complex, and so it has proved > a challenge to come up with a reasonable display for javap > to use to show the contents of the annotations. If you have > any suggestions, I'd be interested. That being said, a multi-line > display similar to that used by the recent DPrinter utility might > work well. > > -- Jon -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Sat Feb 9 18:48:08 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sat, 9 Feb 2013 18:48:08 -0800 Subject: bug in attribution of annotations in anonymous classes In-Reply-To: <50F85427.50200@oracle.com> References: <50F72C60.4040209@oracle.com> <50F83E31.5090708@oracle.com> <50F85427.50200@oracle.com> Message-ID: Hi Steve, >>> First, that test case I attached looks a little suspicious. It may not >>> be >>> expected the correct counts. >>> However, I do still see extra annotations on anonymous classes. >>> I'll have to give that test a better look. >> >> Sorry, I haven't gotten to look at anonymous classes yet. > > Good. Gives me more time to fix that test. I just looked at this issue and can (no longer?) reproduce it. Please push your test case for this and let me know whether it works as expected or not. >>> Second, should type-annotations in lambda expressions be working? >>> I do not see any written to the classfile. >> >> I don't expect anything related to type annotations and lambda to >> currently work. I've added very basic support, but the EG is still >> discussing the final storage format. > > Yep. Currently, I can put them there, and it all compiles, but they are > otherwise ignored. Type annotations for method and constructor references and their type arguments are implemented. It would be great if you could expand on the tests in tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java Type annotations in lambda expressions are still to be implemented - see the discussion in an earlier mail today. Thanks, cu, WMD. -- http://www.google.com/profiles/wdietl From maurizio.cimadamore at oracle.com Mon Feb 11 03:33:02 2013 From: maurizio.cimadamore at oracle.com (Maurizio Cimadamore) Date: Mon, 11 Feb 2013 11:33:02 +0000 Subject: Type Annotations and Lambda In-Reply-To: References: <51118D20.9000906@oracle.com> Message-ID: <5118D6EE.10807@oracle.com> On 10/02/13 02:17, Werner Dietl wrote: > Maurizio, all, > > I implemented type annotations in method references in: > > http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/af8a7d00913b > > Please have a look at the test cases in: > > http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/file/bf5536a0a945/test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java > > and let me know whether I missed any syntax. > This should complete method/constructor reverences and > method/constructor reference type arguments. I think your tests cover all the syntax for unbound references where you have a type qualifier - good. About your points on LambdaToMethod; annotations on declarations are ignored yes, that's a bug. It is very possible that some of the details of the original source are being ignored/not preserved by the lambda translation step. Those are all bugs that have been caused by the fact that our #1 priority has been to get the code to in a stable shape. It is very likely we will do a second pass on the code, as there are many issues with it, especially in terms of dependencies that LambdaToMethod has from other translation passes - there are things that, as you say, would be easily modeled if LambdaToMethod was a pre-erasure pass; other things would be easier if LambdaToMethod was folded as a part of Lower. At some point we even had LambdaToMethod before Lower, but then I changed it (about 1 year ago) as the generation logic was defined entirely in terms of erased types, so full generic type information was an hindrance rather than a bonus. Plus, all the advantages we had from it being a pre-erasure pass (in terms of bridge generation) have been lost when we moved away from the original anonymous inner class translator to the current 292 translator. By all means, I don't want to completely shut the door to the possibility of moving LambdaToMethod before TransTypes - but on the other hand there has to be a compelling need for doing that. I think the problem you are describing (position of type annotations within lambda) could be fixed by having a pass before erasure (probably the one you do have now) that determines position of all type annotation, and then have LambdaToMethod revisit that info and replace old positions with new ones. Maurizio > >> Finally, the spec says that type annotations in the signature or body >> of a lambda expression should appear in the method that results from >> translation. >> I was hoping that this would work without any special effort. However, >> no type annotations appear in a translated method. >> Could somebody point me to the location in the code that translates a >> lambda expression into a method? >> >> This is the place: >> >> http://hg.openjdk.java.net/jdk8/jdk8/langtools/file/tip/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java > I experimented with LambdaToMethod and have two big issues: > > 1. This phase is run after Translate. Therefore, all generics in > lambda bodies are already erased. For example, let's take this simple > code: > > static MyLambda1 getOne() { > return (@TA int x) -> { > @TB List<@TC Object> l = new @TB ArrayList<@TC Object>(); > System.out.println("x: " + (@TC Object) x); > }; > } > > In com.sun.tools.javac.comp.LambdaToMethod.visitVarDef(JCVariableDecl) > the JCVariableDecl that I see initially is: > > @TB() List l = new @TB ArrayList(); > > That is, the type arguments are erased, but at least the type > annotation on List is still present. > > 2. LambdaToMethod does not preserve all type annotations in the tree. > At the end of LambdaToMethod the generated method looks like this: > > /*synthetic*/ private static .void lambda$0(/*synthetic*/ final int x) { > /*synthetic*/ final List l = new @TB() ArrayList(); > System.out.println("x: " + ( @TC() Object)x); > } > > That is, the code is erased and all type annotations in variable > declarations are lost. The type annotations in expressions seem to be > preserved, but the types are of course also erased. > I think the reason why the type arguments are no longer present is > that in visitVarDef the call to "result = make.VarDef" does not > consider any annotations that might have been present in the incoming > tree. > > It would probably be easiest if all annotations, declaration or type > annotations, were propagated from the incoming tree. > Is there a reason why declaration annotations are being ignored? > > Determining the positions for type annotations in lambdas needs to > happen after conversion to a method. > However, if all the types are already erased, we would lose all these > type annotations. > Would it be possible to move the LambdaToMethod phase earlier in the > compilation phases? > > All suggestions and ideas would be very much appreciated. > > Thanks, > cu, WMD. > From steve.sides at oracle.com Mon Feb 11 08:11:14 2013 From: steve.sides at oracle.com (Steve Sides) Date: Mon, 11 Feb 2013 08:11:14 -0800 Subject: bug in attribution of annotations in anonymous classes In-Reply-To: References: <50F72C60.4040209@oracle.com> <50F83E31.5090708@oracle.com> <50F85427.50200@oracle.com> Message-ID: <51191822.6020200@oracle.com> Hi Werner, This was a while ago. :) I believe this case has been resolved. The tests were amended for this and some other issues. I posted a patch (http://cr.openjdk.java.net/~ssides/8007339/) which allows the target tests to run and pass. It has webrev comments describing those changes. The first test now runs all test case and the second skips a few failing cases. I also posted a test for new,cast and array levels(http://cr.openjdk.java.net/~ssides/8005681/). -steve On 2/9/2013 6:48 PM, Werner Dietl wrote: > Hi Steve, > >>>> First, that test case I attaIched looks a little suspicious. It may not >>>> be >>>> expected the correct counts. >>>> However, I do still see extra annotations on anonymous classes. >>>> I'll have to give that test a better look. >>> Sorry, I haven't gotten to look at anonymous classes yet. >> Good. Gives me more time to fix that test. > I just looked at this issue and can (no longer?) reproduce it. > Please push your test case for this and let me know whether it works > as expected or not. > > >>>> Second, should type-annotations in lambda expressions be working? >>>> I do not see any written to the classfile. >>> I don't expect anything related to type annotations and lambda to >>> currently work. I've added very basic support, but the EG is still >>> discussing the final storage format. >> Yep. Currently, I can put them there, and it all compiles, but they are >> otherwise ignored. > Type annotations for method and constructor references and their type > arguments are implemented. It would be great if you could expand on > the tests in > > tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java > > Type annotations in lambda expressions are still to be implemented - > see the discussion in an earlier mail today. > > Thanks, > cu, WMD. > From wdietl at gmail.com Mon Feb 11 16:04:05 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 11 Feb 2013 16:04:05 -0800 Subject: Visibility of methods in javac.comp.Resolve Message-ID: Jon, all, in the Checker Framework we allow String-valued annotations that refer to variable and method names - e.g. for method post-conditions. We currently use reflection to access methods in javac.comp.Resolve that allow us to go from such a String to the correct Symbol. For the current code, see: http://code.google.com/p/checker-framework/source/browse/checkers/src/checkers/util/Resolver.java Would it be acceptable to change the visibility of a few "findXXX" methods in javac.comp.Resolve from package-default to public? In particular, we currently use: - com.sun.tools.javac.comp.Resolve.findIdent(Env, Name, int) - com.sun.tools.javac.comp.Resolve.findType(Env, Name) - com.sun.tools.javac.comp.Resolve.findMethod(Env, Type, Name, List, List, boolean, boolean, boolean) In the future, we might also want: com.sun.tools.javac.comp.Resolve.findConstructor(DiagnosticPosition, Env, Type, List, List, boolean, boolean) The class already provides a few public methods; having these additional methods made public would make it much more useful for us. What do you think? Do you see a cleaner solution for us? Thanks, cu, WMD. -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Mon Feb 11 16:10:15 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Mon, 11 Feb 2013 16:10:15 -0800 Subject: Visibility of methods in javac.comp.Resolve In-Reply-To: References: Message-ID: <51198867.3060906@oracle.com> On 02/11/2013 04:04 PM, Werner Dietl wrote: > Jon, all, > > in the Checker Framework we allow String-valued annotations that refer > to variable and method names - e.g. for method post-conditions. > We currently use reflection to access methods in javac.comp.Resolve > that allow us to go from such a String to the correct Symbol. > For the current code, see: > > http://code.google.com/p/checker-framework/source/browse/checkers/src/checkers/util/Resolver.java > > Would it be acceptable to change the visibility of a few "findXXX" > methods in javac.comp.Resolve from package-default to public? > In particular, we currently use: > > - com.sun.tools.javac.comp.Resolve.findIdent(Env, Name, int) > - com.sun.tools.javac.comp.Resolve.findType(Env, Name) > - com.sun.tools.javac.comp.Resolve.findMethod(Env, Type, > Name, List, List, boolean, boolean, boolean) > > In the future, we might also want: > com.sun.tools.javac.comp.Resolve.findConstructor(DiagnosticPosition, > Env, Type, List, List, boolean, boolean) > > The class already provides a few public methods; having these > additional methods made public would make it much more useful for us. > What do you think? Do you see a cleaner solution for us? > > Thanks, > cu, WMD. > In general, you should not be relying on any API in a class that contains the comment: *

This is NOT part of any supported API. * If you write code that depends on this, you do so at your own risk. * This code and its internal interfaces are subject to change or * deletion without notice. It would be more appropriate to provide suitable methods in the com.sun.source or javax.lang.model API. -- Jon From wdietl at gmail.com Mon Feb 11 16:33:02 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 11 Feb 2013 16:33:02 -0800 Subject: migrating fixes to tl/langtools In-Reply-To: <5112BA31.8050102@oracle.com> References: <5112BA31.8050102@oracle.com> Message-ID: Jon, > What changesets in type-annotations/langtools need to be migrated to > tl/langtools? And, how should they be grouped, if at all? For possible grouping, see these earlier emails: http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-January/000517.html http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-January/000519.html http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-January/000521.html The implementation of Lambda features is spread out a bit more: http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-February/000566.html http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-February/000583.html There were a few other changesets for small cleanups. It might be easiest to simply make a diff against TL and push that as a JSR 308 update. When are you planning to do this push? cu, WMD. -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Mon Feb 11 16:46:00 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 11 Feb 2013 16:46:00 -0800 Subject: Visibility of methods in javac.comp.Resolve In-Reply-To: <51198867.3060906@oracle.com> References: <51198867.3060906@oracle.com> Message-ID: >> in the Checker Framework we allow String-valued annotations that refer >> to variable and method names - e.g. for method post-conditions. >> We currently use reflection to access methods in javac.comp.Resolve >> that allow us to go from such a String to the correct Symbol. >> For the current code, see: >> >> >> http://code.google.com/p/checker-framework/source/browse/checkers/src/checkers/util/Resolver.java >> >> Would it be acceptable to change the visibility of a few "findXXX" >> methods in javac.comp.Resolve from package-default to public? >> In particular, we currently use: >> >> - com.sun.tools.javac.comp.Resolve.findIdent(Env, Name, int) >> - com.sun.tools.javac.comp.Resolve.findType(Env, Name) >> - com.sun.tools.javac.comp.Resolve.findMethod(Env, Type, >> Name, List, List, boolean, boolean, boolean) >> >> In the future, we might also want: >> com.sun.tools.javac.comp.Resolve.findConstructor(DiagnosticPosition, >> Env, Type, List, List, boolean, boolean) >> >> The class already provides a few public methods; having these >> additional methods made public would make it much more useful for us. >> What do you think? Do you see a cleaner solution for us? >> >> Thanks, >> cu, WMD. >> > > In general, you should not be relying on any API in a class that > contains the comment: > > *

This is NOT part of any supported API. > * If you write code that depends on this, you do so at your own risk. > * This code and its internal interfaces are subject to change or > * deletion without notice. > > It would be more appropriate to provide suitable methods in the > com.sun.source or javax.lang.model API. Is there already some existing API to which we could add this feature? Is there any chance of this happening for Java 8? cu, WMD. -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Mon Feb 11 16:48:07 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 12 Feb 2013 00:48:07 +0000 Subject: hg: type-annotations/type-annotations/langtools: 2 new changesets Message-ID: <20130212004818.D5DF3479BB@hg.openjdk.java.net> Changeset: 01af1b5c631d Author: darcy Date: 2013-02-11 13:37 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/01af1b5c631d 8007574: Provide isFunctionalInterface in javax.lang.model Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/share/classes/javax/lang/model/element/TypeElement.java ! src/share/classes/javax/lang/model/util/Elements.java + test/tools/javac/processing/model/util/elements/TestIsFunctionalInterface.java Changeset: a71bd215dde0 Author: wmdietl Date: 2013-02-11 15:27 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/a71bd215dde0 Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! src/share/classes/com/sun/tools/javac/model/JavacElements.java From wdietl at gmail.com Mon Feb 11 16:48:37 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 12 Feb 2013 00:48:37 +0000 Subject: hg: type-annotations/type-annotations/jdk: 6 new changesets Message-ID: <20130212005012.B91B7479BC@hg.openjdk.java.net> Changeset: 58c95d0b6b1a Author: ksrini Date: 2013-02-10 08:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/58c95d0b6b1a 8007519: [unpack200] produces bad class files when producing BootstrapMethods attribute Reviewed-by: alanb ! test/ProblemList.txt Changeset: 520a3433883d Author: ksrini Date: 2013-02-10 08:49 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/520a3433883d 8007902: [unpack200] incorrect BootstrapMethods attribute Reviewed-by: jjh ! src/share/native/com/sun/java/util/jar/pack/unpack.cpp ! test/tools/pack200/Pack200Test.java ! test/tools/pack200/pack200-verifier/data/golden.jar Changeset: 1df991184045 Author: dsamersoff Date: 2013-02-11 18:44 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/1df991184045 8007536: Incorrect copyright header in JDP files Summary: Copyright header in JDP files missed the "classpath exception" rule. Reviewed-by: mikael ! src/share/classes/sun/management/jdp/JdpBroadcaster.java ! src/share/classes/sun/management/jdp/JdpController.java ! src/share/classes/sun/management/jdp/JdpException.java ! src/share/classes/sun/management/jdp/JdpGenericPacket.java ! src/share/classes/sun/management/jdp/JdpJmxPacket.java ! src/share/classes/sun/management/jdp/JdpPacket.java ! src/share/classes/sun/management/jdp/JdpPacketReader.java ! src/share/classes/sun/management/jdp/JdpPacketWriter.java ! src/share/classes/sun/management/jdp/package-info.java Changeset: abd530253f01 Author: dcubed Date: 2013-02-11 10:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/abd530253f01 8007420: add test for 6805864 to com/sun/jdi, add test for 7182152 to java/lang/instrument Reviewed-by: coleenp, sspitsyn + test/com/sun/jdi/RedefineAbstractClass.sh + test/java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesAgent.java + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesApp.java + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesImpl.java + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesImpl_1.java + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesIntf1.java + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesIntf2.java + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesRemote.java + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesTarget.java + test/java/lang/instrument/RedefineSubclassWithTwoInterfacesTarget_1.java Changeset: f21a4b761424 Author: alanb Date: 2013-02-11 20:16 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/f21a4b761424 8007405: Update java.lang.reflect API to replace SYNTHESIZED with MANDATED Reviewed-by: darcy ! src/share/classes/java/lang/reflect/Executable.java ! src/share/classes/java/lang/reflect/Modifier.java ! src/share/classes/java/lang/reflect/Parameter.java Changeset: 724b6c153181 Author: wmdietl Date: 2013-02-11 15:17 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/724b6c153181 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk ! src/share/classes/java/lang/reflect/Executable.java From jonathan.gibbons at oracle.com Mon Feb 11 17:09:57 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Mon, 11 Feb 2013 17:09:57 -0800 Subject: Visibility of methods in javac.comp.Resolve In-Reply-To: References: <51198867.3060906@oracle.com> Message-ID: <51199665.9040808@oracle.com> On 02/11/2013 04:46 PM, Werner Dietl wrote: >>> in the Checker Framework we allow String-valued annotations that refer >>> to variable and method names - e.g. for method post-conditions. >>> We currently use reflection to access methods in javac.comp.Resolve >>> that allow us to go from such a String to the correct Symbol. >>> For the current code, see: >>> >>> >>> http://code.google.com/p/checker-framework/source/browse/checkers/src/checkers/util/Resolver.java >>> >>> Would it be acceptable to change the visibility of a few "findXXX" >>> methods in javac.comp.Resolve from package-default to public? >>> In particular, we currently use: >>> >>> - com.sun.tools.javac.comp.Resolve.findIdent(Env, Name, int) >>> - com.sun.tools.javac.comp.Resolve.findType(Env, Name) >>> - com.sun.tools.javac.comp.Resolve.findMethod(Env, Type, >>> Name, List, List, boolean, boolean, boolean) >>> >>> In the future, we might also want: >>> com.sun.tools.javac.comp.Resolve.findConstructor(DiagnosticPosition, >>> Env, Type, List, List, boolean, boolean) >>> >>> The class already provides a few public methods; having these >>> additional methods made public would make it much more useful for us. >>> What do you think? Do you see a cleaner solution for us? >>> >>> Thanks, >>> cu, WMD. >>> >> In general, you should not be relying on any API in a class that >> contains the comment: >> >> *

This is NOT part of any supported API. >> * If you write code that depends on this, you do so at your own risk. >> * This code and its internal interfaces are subject to change or >> * deletion without notice. >> >> It would be more appropriate to provide suitable methods in the >> com.sun.source or javax.lang.model API. > Is there already some existing API to which we could add this feature? > Is there any chance of this happening for Java 8? > > cu, WMD. > Because of the Env parameter, this cannot be a provided in javax.lang.model, so the appropriate package would presumably be com.sun.source.util. That provides Scope, which is the Tree API version of Env but we don't really have a precedent for the methods you're asking for. Given we are past feature freeze (M6) it is hard to see that it is reasonable to start adding a new family of methods. If you are already using the methods in Resolve, where are you getting the Env from? Do I want to know? OK, I read your Resolver.java class. It seems to me your request is just the top of the tip of the iceberg, since you are using *lots* of javac internal types and methods. Put another way, what I think you may be asking for is (implicitly) putting something like the entire Resolver class into com.sun.source.util. I think the idea has merit but is Too Late for 8. One question would be, should any new methods go on a new Resolver class, or just on Scope? -- Jon From wdietl at gmail.com Mon Feb 11 17:11:03 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 11 Feb 2013 17:11:03 -0800 Subject: bug in attribution of annotations in anonymous classes In-Reply-To: <51191822.6020200@oracle.com> References: <50F72C60.4040209@oracle.com> <50F83E31.5090708@oracle.com> <50F85427.50200@oracle.com> <51191822.6020200@oracle.com> Message-ID: Hi Steve, are these webrevs going into TL in time for the M7 freeze? cu, WMD. On Mon, Feb 11, 2013 at 8:11 AM, Steve Sides wrote: > Hi Werner, > > This was a while ago. :) > > I believe this case has been resolved. The tests were amended for this and > some other issues. > I posted a patch (http://cr.openjdk.java.net/~ssides/8007339/) which allows > the target tests to run and pass. > It has webrev comments describing those changes. The first test now runs all > test case and the second skips a few failing cases. > I also posted a test for new,cast and array > levels(http://cr.openjdk.java.net/~ssides/8005681/). > > -steve > > > > On 2/9/2013 6:48 PM, Werner Dietl wrote: >> >> Hi Steve, >> >>>>> First, that test case I attaIched looks a little suspicious. It may >>>>> not >>>>> >>>>> be >>>>> expected the correct counts. >>>>> However, I do still see extra annotations on anonymous classes. >>>>> I'll have to give that test a better look. >>>> >>>> Sorry, I haven't gotten to look at anonymous classes yet. >>> >>> Good. Gives me more time to fix that test. >> >> I just looked at this issue and can (no longer?) reproduce it. >> Please push your test case for this and let me know whether it works >> as expected or not. >> >> >>>>> Second, should type-annotations in lambda expressions be working? >>>>> I do not see any written to the classfile. >>>> >>>> I don't expect anything related to type annotations and lambda to >>>> currently work. I've added very basic support, but the EG is still >>>> discussing the final storage format. >>> >>> Yep. Currently, I can put them there, and it all compiles, but they are >>> otherwise ignored. >> >> Type annotations for method and constructor references and their type >> arguments are implemented. It would be great if you could expand on >> the tests in >> >> tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java >> >> Type annotations in lambda expressions are still to be implemented - >> see the discussion in an earlier mail today. >> >> Thanks, >> cu, WMD. >> > -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Mon Feb 11 17:19:54 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 11 Feb 2013 17:19:54 -0800 Subject: Visibility of methods in javac.comp.Resolve In-Reply-To: <51199665.9040808@oracle.com> References: <51198867.3060906@oracle.com> <51199665.9040808@oracle.com> Message-ID: Thanks for these explanations, Jon! The Checker Framework is definitely using a lot of "private" APIs, but usually these methods are public and callable without reflection. Resolve is the only class I remember off the top of my head where we have to use reflection to get reasonable behavior. So I'm not really asking for a new feature, just for making the existing feature easily accessible. (Of course I agree that it would be nicer if we could write the Checker Framework without any dependency on javac internals and thereby also support Eclipse. I do hope that will be possible with Java 9. :-) ) cu, WMD. On Mon, Feb 11, 2013 at 5:09 PM, Jonathan Gibbons wrote: > On 02/11/2013 04:46 PM, Werner Dietl wrote: >>>> >>>> in the Checker Framework we allow String-valued annotations that refer >>>> to variable and method names - e.g. for method post-conditions. >>>> We currently use reflection to access methods in javac.comp.Resolve >>>> that allow us to go from such a String to the correct Symbol. >>>> For the current code, see: >>>> >>>> >>>> >>>> http://code.google.com/p/checker-framework/source/browse/checkers/src/checkers/util/Resolver.java > > > >>>> >>>> Would it be acceptable to change the visibility of a few "findXXX" >>>> methods in javac.comp.Resolve from package-default to public? >>>> In particular, we currently use: >>>> >>>> - com.sun.tools.javac.comp.Resolve.findIdent(Env, Name, >>>> int) >>>> - com.sun.tools.javac.comp.Resolve.findType(Env, Name) >>>> - com.sun.tools.javac.comp.Resolve.findMethod(Env, Type, >>>> Name, List, List, boolean, boolean, boolean) >>>> >>>> In the future, we might also want: >>>> com.sun.tools.javac.comp.Resolve.findConstructor(DiagnosticPosition, >>>> Env, Type, List, List, boolean, boolean) >>>> >>>> The class already provides a few public methods; having these >>>> additional methods made public would make it much more useful for us. >>>> What do you think? Do you see a cleaner solution for us? >>>> >>>> Thanks, >>>> cu, WMD. >>>> >>> In general, you should not be relying on any API in a class that >>> contains the comment: >>> >>> *

This is NOT part of any supported API. >>> * If you write code that depends on this, you do so at your own risk. >>> * This code and its internal interfaces are subject to change or >>> * deletion without notice. >>> >>> It would be more appropriate to provide suitable methods in the >>> com.sun.source or javax.lang.model API. >> >> Is there already some existing API to which we could add this feature? >> Is there any chance of this happening for Java 8? >> >> cu, WMD. >> > > Because of the Env parameter, this cannot be a provided in > javax.lang.model, so the appropriate package would presumably > be com.sun.source.util. That provides Scope, which is the Tree API > version of Env but we don't really have a precedent > for the methods you're asking for. > > Given we are past feature freeze (M6) it is hard to see that it is > reasonable to start adding a new family of methods. > > If you are already using the methods in Resolve, where are you > getting the Env from? Do I want to know? > > OK, I read your Resolver.java class. It seems to me your request is > just the top of the tip of the iceberg, since you are using *lots* > of javac internal types and methods. Put another way, what I think > you may be asking for is (implicitly) putting something like the entire > Resolver class into com.sun.source.util. I think the idea has merit > but is Too Late for 8. One question would be, should any new methods > go on a new Resolver class, or just on Scope? > > -- Jon -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Tue Feb 12 15:50:00 2013 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Tue, 12 Feb 2013 23:50:00 +0000 Subject: hg: type-annotations/type-annotations/langtools: 4 new changesets Message-ID: <20130212235014.9CAA7479F4@hg.openjdk.java.net> Changeset: 973646bf043a Author: jfranck Date: 2013-02-12 11:28 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/973646bf043a 8004822: RFE to write language model API tests for repeating annotations based on the spec updates Reviewed-by: jjg, abuckley Contributed-by: Matherey Nunez + test/tools/javac/processing/model/element/repeatingAnnotations/ElementRepAnnoTester.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerBasicTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedA1Test.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedA2Test.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedB1Test.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixRepeatableAndOfficialContainerInheritedB2Test.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerBasicTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedA1Test.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedA2Test.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedB1Test.java + test/tools/javac/processing/model/element/repeatingAnnotations/MixSingularAndUnofficialContainerInheritedB2Test.java + test/tools/javac/processing/model/element/repeatingAnnotations/OfficialContainerBasicTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/OfficialContainerInheritedTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/RepeatableBasicTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/RepeatableInheritedTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOfficialContainerBasicTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOfficialContainerInheritedTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOverrideATest.java + test/tools/javac/processing/model/element/repeatingAnnotations/RepeatableOverrideBTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/SingularBasicTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/SingularInheritedATest.java + test/tools/javac/processing/model/element/repeatingAnnotations/SingularInheritedBTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/UnofficialContainerBasicTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/UnofficialContainerInheritedTest.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/Bar.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/BarContainer.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/BarContainerContainer.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/BarInherited.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/BarInheritedContainer.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/BarInheritedContainerContainer.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/ExpectedBase.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/ExpectedContainer.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/Foo.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/FooInherited.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/UnofficialContainer.java + test/tools/javac/processing/model/element/repeatingAnnotations/supportingAnnotations/UnofficialInheritedContainer.java Changeset: 073696f59241 Author: vromero Date: 2013-02-12 13:36 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/073696f59241 8006334: javap, JavapTask constructor breaks with null pointer exception if parameter options is null Reviewed-by: jjg ! src/share/classes/com/sun/tools/javap/JavapTask.java + test/tools/javap/8006334/JavapTaskCtorFailWithNPE.java Changeset: 2154ed9ff6c8 Author: mcimadamore Date: 2013-02-12 19:25 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/2154ed9ff6c8 8007464: Add graph inference support Summary: Add support for more aggressive type-inference scheme Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java + src/share/classes/com/sun/tools/javac/util/GraphUtils.java ! test/tools/javac/6758789/T6758789b.out ! test/tools/javac/Diagnostics/6799605/T6799605.out ! test/tools/javac/diags/examples/CantApplyDiamond1.java ! test/tools/javac/diags/examples/InferredDoNotConformToEq.java ! test/tools/javac/diags/examples/InferredDoNotConformToUpper.java ! test/tools/javac/diags/examples/WhereFreshTvar.java ! test/tools/javac/generics/7015430/T7015430.out ! test/tools/javac/generics/7151802/T7151802.out ! test/tools/javac/generics/diamond/neg/Neg06.out ! test/tools/javac/generics/inference/6278587/T6278587Neg.java ! test/tools/javac/generics/inference/6638712/T6638712d.out ! test/tools/javac/generics/inference/6638712/T6638712e.out ! test/tools/javac/generics/inference/7154127/T7154127.java ! test/tools/javac/generics/inference/7154127/T7154127.out ! test/tools/javac/generics/inference/7177306/T7177306a.out ! test/tools/javac/generics/inference/7177306/T7177306e.java ! test/tools/javac/generics/inference/7177306/T7177306e.out ! test/tools/javac/generics/odersky/BadTest4.java ! test/tools/javac/lambda/TargetType14.out ! test/tools/javac/lambda/TargetType20.java - test/tools/javac/lambda/TargetType20.out ! test/tools/javac/lambda/TargetType28.out ! test/tools/javac/lambda/TargetType50.java - test/tools/javac/lambda/TargetType50.out ! test/tools/javac/lambda/TargetType51.java ! test/tools/javac/lambda/TargetType52.java ! test/tools/javac/lambda/TargetType52.out + test/tools/javac/lambda/TargetType53.java + test/tools/javac/lambda/TargetType54.java + test/tools/javac/lambda/TargetType55.java + test/tools/javac/lambda/TargetType56.java + test/tools/javac/lambda/TargetType57.java + test/tools/javac/lambda/TargetType57.out + test/tools/javac/lambda/TargetType58.java + test/tools/javac/lambda/TargetType59.java + test/tools/javac/lambda/TargetType61.java + test/tools/javac/lambda/TargetType62.java Changeset: 9e41050bcedc Author: jjg Date: 2013-02-12 15:48 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/9e41050bcedc Merge ! src/share/classes/com/sun/tools/javac/code/Source.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Infer.java - test/tools/javac/lambda/TargetType20.out - test/tools/javac/lambda/TargetType50.out From jonathan.gibbons at oracle.com Tue Feb 12 16:24:11 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 12 Feb 2013 16:24:11 -0800 Subject: test failures in type-annotations/langtools Message-ID: <511ADD2B.7000103@oracle.com> I see 5 test failures in type-annotations/langtools. These are: com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java If we are to push the latest type-annotations/langtools bits into tl/langtools, should these tests be @ignored? -- Jon From wdietl at gmail.com Tue Feb 12 16:26:29 2013 From: wdietl at gmail.com (Werner Dietl) Date: Tue, 12 Feb 2013 16:26:29 -0800 Subject: test failures in type-annotations/langtools In-Reply-To: <511ADD2B.7000103@oracle.com> References: <511ADD2B.7000103@oracle.com> Message-ID: On Tue, Feb 12, 2013 at 4:24 PM, Jonathan Gibbons wrote: > I see 5 test failures in type-annotations/langtools. These are: > > com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java > tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java > tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java > tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java > tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java > > If we are to push the latest type-annotations/langtools bits into > tl/langtools, should these tests be @ignored? These tests are already being ignored in tl, so just don't push the diffs against those files. cu, WMD. -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Tue Feb 12 16:33:18 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 12 Feb 2013 16:33:18 -0800 Subject: test failures in type-annotations/langtools In-Reply-To: <511ADD2B.7000103@oracle.com> References: <511ADD2B.7000103@oracle.com> Message-ID: <511ADF4E.5050608@oracle.com> On 02/12/2013 04:24 PM, Jonathan Gibbons wrote: > I see 5 test failures in type-annotations/langtools. These are: > > com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java > tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java > > tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java > > tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java > > tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java > > If we are to push the latest type-annotations/langtools bits into > tl/langtools, should these tests be @ignored? > > -- Jon No matter -- I see the files are already @ignored in tl/langtools. FWIW, it is good practice if the @ignore line contains a bug number and explanation why the test is being @ignored -- Jon From jonathan.gibbons at oracle.com Tue Feb 12 16:44:19 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 12 Feb 2013 16:44:19 -0800 Subject: Request for review: type-annos/langtools -> tl/langtools Message-ID: <511AE1E3.2070704@oracle.com> The project forest has a number of updates ready for integration * renumbering of TargetType constants * implementation of method/constructor references * support for casts with intersection types * fix bug in erasure of a type variable with annotated upper bound, * fix bug in attributing lazy constant values. http://cr.openjdk.java.net/~jjg/8008077/webrev.00/ Werner, please double check these bits are as expected. -- Jon From jonathan.gibbons at oracle.com Tue Feb 12 16:51:09 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 12 Feb 2013 16:51:09 -0800 Subject: Request for review: type-annos/langtools -> tl/langtools In-Reply-To: <511AE1E3.2070704@oracle.com> References: <511AE1E3.2070704@oracle.com> Message-ID: <511AE37D.4010305@oracle.com> On 02/12/2013 04:44 PM, Jonathan Gibbons wrote: > The project forest has a number of updates ready for integration > > * renumbering of TargetType constants > * implementation of method/constructor references > * support for casts with intersection types > * fix bug in erasure of a type variable with annotated upper bound, > * fix bug in attributing lazy constant values. > > http://cr.openjdk.java.net/~jjg/8008077/webrev.00/ > > Werner, please double check these bits are as expected. > > -- Jon Note that by convention, tests start in the order * legal header block * test description * then imports This affects the last couple of new tests. -- Jon From wdietl at gmail.com Tue Feb 12 16:57:12 2013 From: wdietl at gmail.com (Werner Dietl) Date: Tue, 12 Feb 2013 16:57:12 -0800 Subject: Request for review: type-annos/langtools -> tl/langtools In-Reply-To: <511AE1E3.2070704@oracle.com> References: <511AE1E3.2070704@oracle.com> Message-ID: On Tue, Feb 12, 2013 at 4:44 PM, Jonathan Gibbons wrote: > The project forest has a number of updates ready for integration > > * renumbering of TargetType constants > * implementation of method/constructor references > * support for casts with intersection types > * fix bug in erasure of a type variable with annotated upper bound, > * fix bug in attributing lazy constant values. > > http://cr.openjdk.java.net/~jjg/8008077/webrev.00/ > > Werner, please double check these bits are as expected. In two of the added test files I used "@bug 1234567". Should this be another number, maybe 8008077? Otherwise, the diffs look as expected. Thanks, cu, WMD. -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Tue Feb 12 16:58:56 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 12 Feb 2013 16:58:56 -0800 Subject: Request for review: type-annos/langtools -> tl/langtools In-Reply-To: References: <511AE1E3.2070704@oracle.com> Message-ID: <511AE550.3090708@oracle.com> On 02/12/2013 04:57 PM, Werner Dietl wrote: > On Tue, Feb 12, 2013 at 4:44 PM, Jonathan Gibbons > wrote: >> The project forest has a number of updates ready for integration >> >> * renumbering of TargetType constants >> * implementation of method/constructor references >> * support for casts with intersection types >> * fix bug in erasure of a type variable with annotated upper bound, >> * fix bug in attributing lazy constant values. >> >> http://cr.openjdk.java.net/~jjg/8008077/webrev.00/ >> >> Werner, please double check these bits are as expected. > In two of the added test files I used "@bug 1234567". Should this be > another number, maybe 8008077? > > Otherwise, the diffs look as expected. > > Thanks, > cu, WMD. > Missed that: thanks for catching it. Will change the values when the current test run completes. -- Jon From jonathan.gibbons at oracle.com Tue Feb 12 17:21:42 2013 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Wed, 13 Feb 2013 01:21:42 +0000 Subject: hg: type-annotations/type-annotations/langtools: 2 new changesets Message-ID: <20130213012151.89B3047A02@hg.openjdk.java.net> Changeset: bc456436c613 Author: jjg Date: 2013-02-12 17:15 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/bc456436c613 8008077: update reference impl for type-annotations Reviewed-by: jjg Contributed-by: wmdietl at cs.washington.edu ! src/share/classes/com/sun/tools/classfile/ClassWriter.java ! src/share/classes/com/sun/tools/classfile/TypeAnnotation.java ! src/share/classes/com/sun/tools/javac/code/TargetType.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/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javap/AnnotationWriter.java + test/tools/javac/annotations/typeAnnotations/failures/LazyConstantValue.java + test/tools/javac/annotations/typeAnnotations/failures/TypeVariable.java ! test/tools/javac/annotations/typeAnnotations/failures/VoidGenericMethod.java + test/tools/javac/annotations/typeAnnotations/newlocations/Lambda.java + test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java Changeset: 2a26f48513a9 Author: jjg Date: 2013-02-12 17:21 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/2a26f48513a9 Merge ! src/share/classes/com/sun/tools/classfile/ClassWriter.java ! src/share/classes/com/sun/tools/classfile/TypeAnnotation.java ! src/share/classes/com/sun/tools/javac/code/TargetType.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/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/tree/TreeInfo.java ! src/share/classes/com/sun/tools/javap/AnnotationWriter.java ! test/tools/javac/annotations/typeAnnotations/failures/LazyConstantValue.java ! test/tools/javac/annotations/typeAnnotations/failures/TypeVariable.java ! test/tools/javac/annotations/typeAnnotations/failures/VoidGenericMethod.java ! test/tools/javac/annotations/typeAnnotations/newlocations/Lambda.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Lambda.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/MethodParameters.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/TypeCasts.java From wdietl at gmail.com Wed Feb 13 12:49:57 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Wed, 13 Feb 2013 20:49:57 +0000 Subject: hg: type-annotations/type-annotations/jdk: 28 new changesets Message-ID: <20130213205629.5CC5747A43@hg.openjdk.java.net> Changeset: 465cce29a9ed Author: mduigou Date: 2013-02-06 11:28 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/465cce29a9ed 8006594: Add jdk_core target to jdk/test/Makefile Reviewed-by: alanb ! make/jprt.properties ! test/Makefile ! test/ProblemList.txt Changeset: f7fb173ac833 Author: dsamersoff Date: 2013-02-12 16:02 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/f7fb173ac833 8007786: JDK-8002048 testcase doesn't work on Solaris Summary: test built in into Solaris shell doesn't have -e operator Reviewed-by: sla, sspitsyn ! test/sun/management/jdp/JdpTest.sh Changeset: 7dcb74c3ffba Author: sherman Date: 2013-02-12 09:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/7dcb74c3ffba 8007392: JSR 310: DateTime API Updates 8007520: Update date/time classes in j.util and j.sql packages 8007572: Replace existing jdk timezone data at /lib/zi with JSR310's tzdb Summary: Integration of JSR310 Date/Time API for M7 Reviewed-by: darcy, alanb, naoto Contributed-by: scolebourne at joda.org, roger.riggs at oracle.com, masayoshi.okutsu at oracle.com, patrick.zhang at oracle.com ! make/docs/CORE_PKGS.gmk ! make/java/java/FILES_java.gmk ! make/sun/Makefile ! make/sun/javazic/Makefile + make/sun/javazic/tzdata/gmt + make/sun/javazic/tzdata/jdk11_backward ! make/sun/tzdb/Makefile ! make/tools/Makefile ! make/tools/src/build/tools/javazic/Zoneinfo.java ! make/tools/src/build/tools/tzdb/TzdbZoneRulesCompiler.java ! makefiles/GendataTZDB.gmk ! makefiles/GendataTimeZone.gmk ! makefiles/GenerateData.gmk ! makefiles/Tools.gmk ! src/share/classes/java/sql/Date.java ! src/share/classes/java/sql/Time.java ! src/share/classes/java/sql/Timestamp.java ! src/share/classes/java/time/Clock.java ! src/share/classes/java/time/DayOfWeek.java ! 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/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/PeriodParser.java ! src/share/classes/java/time/Ser.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/ZoneRegion.java ! src/share/classes/java/time/ZonedDateTime.java - src/share/classes/java/time/calendar/ChronoDateImpl.java - src/share/classes/java/time/calendar/HijrahChrono.java - src/share/classes/java/time/calendar/HijrahDate.java - src/share/classes/java/time/calendar/HijrahDeviationReader.java - src/share/classes/java/time/calendar/HijrahEra.java - src/share/classes/java/time/calendar/JapaneseChrono.java - src/share/classes/java/time/calendar/JapaneseDate.java - src/share/classes/java/time/calendar/JapaneseEra.java - src/share/classes/java/time/calendar/MinguoChrono.java - src/share/classes/java/time/calendar/MinguoDate.java - src/share/classes/java/time/calendar/MinguoEra.java - src/share/classes/java/time/calendar/Ser.java - src/share/classes/java/time/calendar/ThaiBuddhistChrono.java - src/share/classes/java/time/calendar/ThaiBuddhistDate.java - src/share/classes/java/time/calendar/ThaiBuddhistEra.java - src/share/classes/java/time/calendar/package-info.java + src/share/classes/java/time/chrono/ChronoDateImpl.java + src/share/classes/java/time/chrono/ChronoLocalDate.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/chrono/Chronology.java + src/share/classes/java/time/chrono/Era.java + src/share/classes/java/time/chrono/HijrahChronology.java + src/share/classes/java/time/chrono/HijrahDate.java + src/share/classes/java/time/chrono/HijrahDeviationReader.java + src/share/classes/java/time/chrono/HijrahEra.java + src/share/classes/java/time/chrono/IsoChronology.java + src/share/classes/java/time/chrono/IsoEra.java + src/share/classes/java/time/chrono/JapaneseChronology.java + src/share/classes/java/time/chrono/JapaneseDate.java + src/share/classes/java/time/chrono/JapaneseEra.java + src/share/classes/java/time/chrono/MinguoChronology.java + src/share/classes/java/time/chrono/MinguoDate.java + src/share/classes/java/time/chrono/MinguoEra.java + src/share/classes/java/time/chrono/Ser.java + src/share/classes/java/time/chrono/ThaiBuddhistChronology.java + src/share/classes/java/time/chrono/ThaiBuddhistDate.java + src/share/classes/java/time/chrono/ThaiBuddhistEra.java + src/share/classes/java/time/chrono/package-info.java ! src/share/classes/java/time/format/DateTimeBuilder.java ! src/share/classes/java/time/format/DateTimeFormatStyleProvider.java ! src/share/classes/java/time/format/DateTimeFormatter.java ! src/share/classes/java/time/format/DateTimeFormatterBuilder.java - src/share/classes/java/time/format/DateTimeFormatters.java ! src/share/classes/java/time/format/DateTimeParseContext.java ! src/share/classes/java/time/format/DateTimePrintContext.java - src/share/classes/java/time/format/DateTimePrintException.java ! src/share/classes/java/time/format/DateTimeTextProvider.java ! src/share/classes/java/time/format/FormatStyle.java + src/share/classes/java/time/format/ZoneName.java ! src/share/classes/java/time/format/package-info.java ! src/share/classes/java/time/overview.html ! src/share/classes/java/time/package-info.java - src/share/classes/java/time/temporal/Chrono.java ! src/share/classes/java/time/temporal/ChronoField.java - src/share/classes/java/time/temporal/ChronoLocalDate.java - src/share/classes/java/time/temporal/ChronoLocalDateTime.java - src/share/classes/java/time/temporal/ChronoLocalDateTimeImpl.java ! src/share/classes/java/time/temporal/ChronoUnit.java - src/share/classes/java/time/temporal/ChronoZonedDateTime.java - src/share/classes/java/time/temporal/ChronoZonedDateTimeImpl.java - src/share/classes/java/time/temporal/Era.java - src/share/classes/java/time/temporal/ISOChrono.java - src/share/classes/java/time/temporal/ISOEra.java - src/share/classes/java/time/temporal/ISOFields.java + src/share/classes/java/time/temporal/IsoFields.java ! src/share/classes/java/time/temporal/JulianFields.java - src/share/classes/java/time/temporal/MonthDay.java - src/share/classes/java/time/temporal/OffsetDate.java - src/share/classes/java/time/temporal/OffsetDateTime.java - src/share/classes/java/time/temporal/OffsetTime.java ! src/share/classes/java/time/temporal/Queries.java - src/share/classes/java/time/temporal/Ser.java - src/share/classes/java/time/temporal/SimplePeriod.java ! src/share/classes/java/time/temporal/Temporal.java ! src/share/classes/java/time/temporal/TemporalAccessor.java - src/share/classes/java/time/temporal/TemporalAdder.java ! src/share/classes/java/time/temporal/TemporalAdjuster.java + src/share/classes/java/time/temporal/TemporalAmount.java ! src/share/classes/java/time/temporal/TemporalField.java ! src/share/classes/java/time/temporal/TemporalQuery.java - src/share/classes/java/time/temporal/TemporalSubtractor.java ! src/share/classes/java/time/temporal/TemporalUnit.java ! src/share/classes/java/time/temporal/WeekFields.java - src/share/classes/java/time/temporal/Year.java - src/share/classes/java/time/temporal/YearMonth.java ! src/share/classes/java/time/temporal/package-info.java ! src/share/classes/java/time/zone/TzdbZoneRulesProvider.java ! src/share/classes/java/time/zone/ZoneOffsetTransitionRule.java ! src/share/classes/java/time/zone/ZoneRules.java ! src/share/classes/java/time/zone/ZoneRulesProvider.java ! src/share/classes/java/util/Calendar.java ! src/share/classes/java/util/Date.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/java/util/GregorianCalendar.java ! src/share/classes/java/util/TimeZone.java ! src/share/classes/sun/text/resources/FormatData.java ! src/share/classes/sun/text/resources/ar/FormatData_ar.java ! src/share/classes/sun/text/resources/el/FormatData_el.java ! src/share/classes/sun/text/resources/hr/FormatData_hr.java ! src/share/classes/sun/text/resources/ja/FormatData_ja.java ! src/share/classes/sun/text/resources/ko/FormatData_ko.java ! src/share/classes/sun/text/resources/sr/FormatData_sr.java ! src/share/classes/sun/text/resources/sv/FormatData_sv.java ! src/share/classes/sun/text/resources/zh/FormatData_zh.java ! src/share/classes/sun/text/resources/zh/FormatData_zh_TW.java ! src/share/classes/sun/util/calendar/CalendarSystem.java ! src/share/classes/sun/util/calendar/LocalGregorianCalendar.java - src/share/classes/sun/util/calendar/TzIDOldMapping.java ! src/share/classes/sun/util/calendar/ZoneInfo.java ! src/share/classes/sun/util/calendar/ZoneInfoFile.java ! src/share/classes/sun/util/locale/provider/CalendarDataUtility.java ! src/share/classes/sun/util/locale/provider/CalendarNameProviderImpl.java ! src/share/classes/sun/util/locale/provider/LocaleResources.java + test/java/sql/JavatimeTest.java + test/java/time/META-INF/services/java.time.chrono.Chronology - test/java/time/META-INF/services/java.time.temporal.Chrono ! test/java/time/tck/java/time/AbstractTCKTest.java + test/java/time/tck/java/time/MockSimplePeriod.java ! test/java/time/tck/java/time/TCKClock.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/TCKDayOfWeek.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/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/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/TestChronology.java + test/java/time/tck/java/time/TestIsoChronology.java - test/java/time/tck/java/time/calendar/CopticChrono.java - test/java/time/tck/java/time/calendar/CopticDate.java - test/java/time/tck/java/time/calendar/CopticEra.java - test/java/time/tck/java/time/calendar/TestChronoLocalDate.java - test/java/time/tck/java/time/calendar/TestChronoLocalDateTime.java - test/java/time/tck/java/time/calendar/TestHijrahChrono.java - test/java/time/tck/java/time/calendar/TestJapaneseChrono.java - test/java/time/tck/java/time/calendar/TestMinguoChrono.java - test/java/time/tck/java/time/calendar/TestServiceLoader.java - test/java/time/tck/java/time/calendar/TestThaiBuddhistChrono.java + test/java/time/tck/java/time/chrono/CopticChronology.java + test/java/time/tck/java/time/chrono/CopticDate.java + test/java/time/tck/java/time/chrono/CopticEra.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/TestChronoLocalDate.java + test/java/time/tck/java/time/chrono/TestChronoLocalDateTime.java + test/java/time/tck/java/time/chrono/TestHijrahChronology.java + test/java/time/tck/java/time/chrono/TestJapaneseChronology.java + test/java/time/tck/java/time/chrono/TestMinguoChronology.java + test/java/time/tck/java/time/chrono/TestThaiBuddhistChronology.java + test/java/time/tck/java/time/format/TCKChronoPrinterParser.java ! test/java/time/tck/java/time/format/TCKDateTimeFormatter.java ! test/java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java ! test/java/time/tck/java/time/format/TCKDateTimeFormatters.java - test/java/time/tck/java/time/format/TCKDateTimePrintException.java ! test/java/time/tck/java/time/format/TCKDateTimeTextPrinting.java ! test/java/time/tck/java/time/format/TCKLocalizedFieldParser.java ! test/java/time/tck/java/time/format/TCKLocalizedFieldPrinter.java + test/java/time/tck/java/time/format/TCKLocalizedPrinterParser.java + test/java/time/tck/java/time/format/TCKOffsetPrinterParser.java + test/java/time/tck/java/time/format/TCKPadPrinterParser.java + test/java/time/tck/java/time/format/TCKZoneIdPrinterParser.java - test/java/time/tck/java/time/temporal/TCKISOFields.java + test/java/time/tck/java/time/temporal/TCKIsoFields.java ! test/java/time/tck/java/time/temporal/TCKJulianFields.java - test/java/time/tck/java/time/temporal/TCKMonthDay.java - test/java/time/tck/java/time/temporal/TCKOffsetDate.java - test/java/time/tck/java/time/temporal/TCKOffsetDateTime.java - test/java/time/tck/java/time/temporal/TCKOffsetTime.java - test/java/time/tck/java/time/temporal/TCKSimplePeriod.java ! test/java/time/tck/java/time/temporal/TCKWeekFields.java - test/java/time/tck/java/time/temporal/TCKYear.java - test/java/time/tck/java/time/temporal/TCKYearMonth.java - test/java/time/tck/java/time/temporal/TestChrono.java ! test/java/time/tck/java/time/temporal/TestChronoLocalDate.java ! test/java/time/tck/java/time/temporal/TestChronoLocalDateTime.java ! test/java/time/tck/java/time/temporal/TestChronoZonedDateTime.java - test/java/time/tck/java/time/temporal/TestISOChrono.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/TCKZoneRulesProvider.java ! test/java/time/test/java/time/MockSimplePeriod.java ! test/java/time/test/java/time/TestDuration.java ! test/java/time/test/java/time/TestLocalDateTime.java ! test/java/time/test/java/time/TestLocalTime.java + test/java/time/test/java/time/TestMonthDay.java + test/java/time/test/java/time/TestOffsetDateTime.java + test/java/time/test/java/time/TestOffsetDateTime_instants.java + test/java/time/test/java/time/TestOffsetTime.java ! test/java/time/test/java/time/TestPeriod.java - test/java/time/test/java/time/TestPeriodParser.java + test/java/time/test/java/time/TestYear.java + test/java/time/test/java/time/TestYearMonth.java ! test/java/time/test/java/time/TestZoneId.java + test/java/time/test/java/time/chrono/TestExampleCode.java + test/java/time/test/java/time/chrono/TestIsoChronoImpl.java + test/java/time/test/java/time/chrono/TestServiceLoader.java ! test/java/time/test/java/time/format/TestCharLiteralParser.java ! test/java/time/test/java/time/format/TestCharLiteralPrinter.java + test/java/time/test/java/time/format/TestDateTimeFormatterBuilder.java - test/java/time/test/java/time/format/TestDateTimeFormatters.java - test/java/time/test/java/time/format/TestDateTimePrintException.java ! test/java/time/test/java/time/format/TestDateTimeTextProvider.java ! test/java/time/test/java/time/format/TestFractionPrinterParser.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/TestNumberPrinter.java - test/java/time/test/java/time/format/TestPadParserDecorator.java ! test/java/time/test/java/time/format/TestPadPrinterDecorator.java ! test/java/time/test/java/time/format/TestReducedParser.java ! test/java/time/test/java/time/format/TestReducedPrinter.java ! test/java/time/test/java/time/format/TestSettingsParser.java ! test/java/time/test/java/time/format/TestStringLiteralParser.java ! test/java/time/test/java/time/format/TestStringLiteralPrinter.java ! test/java/time/test/java/time/format/TestTextParser.java ! test/java/time/test/java/time/format/TestTextPrinter.java - test/java/time/test/java/time/format/TestZoneIdParser.java ! test/java/time/test/java/time/format/TestZoneOffsetParser.java ! test/java/time/test/java/time/format/TestZoneOffsetPrinter.java ! test/java/time/test/java/time/format/TestZoneTextPrinterParser.java + test/java/time/test/java/time/format/ZoneName.java ! test/java/time/test/java/time/temporal/MockFieldNoValue.java ! test/java/time/test/java/time/temporal/MockFieldValue.java ! test/java/time/test/java/time/temporal/TestChronoUnit.java ! test/java/time/test/java/time/temporal/TestDateTimeBuilderCombinations.java - test/java/time/test/java/time/temporal/TestISOChronoImpl.java ! test/java/time/test/java/time/temporal/TestJapaneseChronoImpl.java + test/java/time/test/java/time/temporal/TestJulianFields.java - test/java/time/test/java/time/temporal/TestMonthDay.java - test/java/time/test/java/time/temporal/TestOffsetDate.java - test/java/time/test/java/time/temporal/TestOffsetDateTime.java - test/java/time/test/java/time/temporal/TestOffsetDateTime_instants.java - test/java/time/test/java/time/temporal/TestOffsetTime.java ! test/java/time/test/java/time/temporal/TestThaiBuddhistChronoImpl.java - test/java/time/test/java/time/temporal/TestYear.java - test/java/time/test/java/time/temporal/TestYearMonth.java ! test/java/time/test/java/time/zone/TestFixedZoneRules.java ! test/java/time/test/java/util/TestFormatter.java + test/java/util/Calendar/JavatimeTest.java ! test/java/util/TimeZone/OldIDMappingTest.java + test/java/util/TimeZone/TzIDOldMapping.java + test/sun/util/calendar/zi/BackEnd.java + test/sun/util/calendar/zi/Checksum.java + test/sun/util/calendar/zi/DayOfWeek.java + test/sun/util/calendar/zi/Gen.java + test/sun/util/calendar/zi/GenDoc.java + test/sun/util/calendar/zi/Main.java + test/sun/util/calendar/zi/Mappings.java + test/sun/util/calendar/zi/Month.java + test/sun/util/calendar/zi/Rule.java + test/sun/util/calendar/zi/RuleDay.java + test/sun/util/calendar/zi/RuleRec.java + test/sun/util/calendar/zi/Simple.java + test/sun/util/calendar/zi/TestZoneInfo310.java + test/sun/util/calendar/zi/Time.java + test/sun/util/calendar/zi/Timezone.java + test/sun/util/calendar/zi/TzIDOldMapping.java + test/sun/util/calendar/zi/Zone.java + test/sun/util/calendar/zi/ZoneInfoFile.java + test/sun/util/calendar/zi/ZoneInfoOld.java + test/sun/util/calendar/zi/ZoneRec.java + test/sun/util/calendar/zi/Zoneinfo.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/factory + test/sun/util/calendar/zi/tzdata/gmt + test/sun/util/calendar/zi/tzdata/iso3166.tab + test/sun/util/calendar/zi/tzdata/jdk11_backward + test/sun/util/calendar/zi/tzdata/leapseconds + test/sun/util/calendar/zi/tzdata/northamerica + test/sun/util/calendar/zi/tzdata/pacificnew + test/sun/util/calendar/zi/tzdata/solar87 + test/sun/util/calendar/zi/tzdata/solar88 + test/sun/util/calendar/zi/tzdata/solar89 + test/sun/util/calendar/zi/tzdata/southamerica + test/sun/util/calendar/zi/tzdata/systemv + test/sun/util/calendar/zi/tzdata/zone.tab + test/sun/util/calendar/zi/tzdata_jdk/gmt + test/sun/util/calendar/zi/tzdata_jdk/jdk11_backward + test/sun/util/calendar/zi/tzdata_jdk/jdk11_full_backward Changeset: 2cd67a8c7abc Author: jfranck Date: 2013-02-13 10:36 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/2cd67a8c7abc 8007278: Rename j.l.r.AnnotatedElement.getAnnotations(Class) to getAnnotationsByType(Class) Reviewed-by: darcy, abuckley ! src/share/classes/java/lang/Class.java ! src/share/classes/java/lang/Package.java ! src/share/classes/java/lang/reflect/AccessibleObject.java ! src/share/classes/java/lang/reflect/AnnotatedElement.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/generics/reflectiveObjects/TypeVariableImpl.java ! test/java/lang/annotation/TypeParamAnnotation.java ! test/java/lang/annotation/repeatingAnnotations/RepeatedUnitTest.java Changeset: cd111064d4e9 Author: zgu Date: 2013-02-12 14:47 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/cd111064d4e9 8006691: Remove jvm_version_info->is_kernel_jvm field Summary: Remove is_kernel_jvm field in jvm_version_info structure, as kernel VM has been deprecated Reviewed-by: mchung ! src/share/javavm/export/jvm.h Changeset: bf64f83aa0cd Author: vinnie Date: 2013-02-13 16:01 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/bf64f83aa0cd 8007934: algorithm parameters for PBE Scheme 2 not decoded correctly in PKCS12 keystore Reviewed-by: mullan ! src/share/classes/sun/security/pkcs12/PKCS12KeyStore.java ! test/java/security/KeyStore/PBETest.java Changeset: ceb7c712c693 Author: vinnie Date: 2013-02-13 16:03 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ceb7c712c693 Merge Changeset: 8181be9a3538 Author: dsamersoff Date: 2013-02-13 21:06 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/8181be9a3538 8008095: TEST_BUG: JDK-8002048 one more testcase failure on Solaris Summary: fixed couple of more Solaris shell incompatibilities Reviewed-by: chegar ! test/sun/management/jdp/JdpTest.sh Changeset: 11438befdd4c Author: vinnie Date: 2013-02-13 19:40 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/11438befdd4c 8007755: Support the logical grouping of keystores Reviewed-by: mullan ! src/share/classes/java/security/KeyStore.java + src/share/classes/sun/security/provider/DomainKeyStore.java ! src/share/classes/sun/security/provider/PolicyParser.java ! src/share/classes/sun/security/provider/Sun.java ! src/share/classes/sun/security/provider/SunEntries.java ! src/share/classes/sun/security/util/Resources.java + test/sun/security/provider/KeyStore/DKSTest.java + test/sun/security/provider/KeyStore/DKSTest.sh + test/sun/security/provider/KeyStore/domains.cfg ! test/sun/security/tools/keytool/AltProviderPath.sh ! test/sun/security/tools/keytool/DummyProvider.java Changeset: efc66fe16f91 Author: sherman Date: 2013-02-13 11:49 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/efc66fe16f91 8008161: Regression: j.u.TimeZone.getAvailableIDs(rawOffset) returns non-sorted list Summary: to return a sorted list Reviewed-by: lancea, naoto ! src/share/classes/sun/util/calendar/ZoneInfoFile.java ! test/sun/util/calendar/zi/TestZoneInfo310.java Changeset: c5a7ac2a721f Author: ohrstrom Date: 2013-01-31 14:03 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c5a7ac2a721f 8006872: Stop creating four jars with identical content in the new build system. Reviewed-by: erikj ! makefiles/CreateJars.gmk ! makefiles/GensrcSwing.gmk ! makefiles/Setup.gmk Changeset: 35cf77f633c9 Author: tbell Date: 2013-02-01 09:16 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/35cf77f633c9 8006808: mapfile use check in jdk/make/common/shared/Defs-solaris.gmk is throwing 'egrep: syntax error' Summary: Use a valid egrep expression in the non-SPARC case Reviewed-by: dholmes ! make/common/shared/Defs-solaris.gmk Changeset: 5692ebe15321 Author: erikj Date: 2013-02-04 10:58 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/5692ebe15321 8007268: build-infra: configure reports Solaris needs gcc for deploy, but logs don't indicate it's used. Reviewed-by: tbell, katleman ! make/common/shared/Sanity.gmk Changeset: 3a2630528661 Author: katleman Date: 2013-02-05 18:54 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/3a2630528661 Merge Changeset: 933742f4bb4c Author: katleman Date: 2013-02-07 12:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/933742f4bb4c Added tag jdk8-b76 for changeset 3a2630528661 ! .hgtags Changeset: e63e7ee18412 Author: bae Date: 2013-02-01 20:06 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/e63e7ee18412 8004801: The image of BufferedImage.TYPE_INT_ARGB is blank. Reviewed-by: prr ! src/share/native/sun/awt/image/awt_parseImage.c ! src/solaris/native/sun/awt/awt_Mlib.c ! src/solaris/native/sun/awt/awt_Mlib.h ! src/windows/native/sun/windows/awt_Mlib.cpp ! src/windows/native/sun/windows/awt_Mlib.h + test/java/awt/image/LookupOp/IntImageReverseTest.java Changeset: 1df2944db538 Author: serb Date: 2013-02-04 19:50 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/1df2944db538 8004821: Graphics2D.drawPolygon() fails with IllegalPathStateException Reviewed-by: prr, flar ! src/share/classes/sun/java2d/pipe/PixelToShapeConverter.java + test/sun/java2d/pipe/Test8004821.java Changeset: 8fc3e4015b09 Author: jgodinez Date: 2013-02-04 12:04 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/8fc3e4015b09 8005052: [parfait] #416 X11SurfaceData.c UNINITIALISED OR MISSING RETURN VALUE 8005054: [parfait] #417 X11SurfaceData.c UNINITIALISED OR MISSING RETURN VALUE Reviewed-by: prr, vadim Contributed-by: jia-hong.chen at oracle.com ! src/solaris/native/sun/java2d/x11/X11SurfaceData.c Changeset: fd61fcc1a5a9 Author: leonidr Date: 2013-01-31 18:25 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/fd61fcc1a5a9 8007006: [macosx] Closing subwindow loses main window menus Reviewed-by: anthony ! src/macosx/native/sun/awt/AWTWindow.m Changeset: 452deb976c92 Author: ptbrunet Date: 2013-01-31 18:51 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/452deb976c92 7179482: Component.accessibleContext and JComponent.accessibleContext refactoring Reviewed-by: art, anthony, alexsch ! src/share/classes/java/awt/Component.java ! src/share/classes/java/awt/Container.java ! src/share/classes/javax/swing/JComponent.java Changeset: 0b56a169295f Author: pchelko Date: 2013-02-04 13:54 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/0b56a169295f 8005405: [macosx] Drag and Drop: wrong animation when dropped outside any drop target. Summary: Changed the calculation of the drag image offset Reviewed-by: serb, kizune ! src/macosx/classes/sun/lwawt/macosx/CDragSourceContextPeer.java ! src/macosx/native/sun/awt/CDragSource.m Changeset: 171443b1eb3b Author: kshefov Date: 2013-02-04 16:01 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/171443b1eb3b 7077259: [TEST_BUG] [macosx] Test work correctly only when default L&F is Metal Reviewed-by: serb, alexsch ! test/javax/swing/JSlider/4252173/bug4252173.java ! test/javax/swing/JSpinner/6532833/bug6532833.java ! test/javax/swing/plaf/metal/MetalSliderUI/Test6657026.java Changeset: 0e929be3a9da Author: lana Date: 2013-02-05 11:10 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/0e929be3a9da Merge Changeset: f26b539bf1d5 Author: lana Date: 2013-02-05 11:11 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/f26b539bf1d5 Merge - src/share/classes/java/lang/annotation/ContainedBy.java - src/share/classes/java/lang/annotation/ContainerFor.java - test/java/net/URL/abnormal_http_urls - test/java/net/URL/ftp_urls - test/java/net/URL/jar_urls - test/java/net/URL/normal_http_urls - test/java/net/URL/runconstructor.sh - test/java/net/URL/share_file_urls - test/java/net/URL/win32_file_urls - test/sun/net/www/EncDec.doc - test/sun/net/www/MarkResetTest.java - test/sun/net/www/MarkResetTest.sh - test/sun/security/util/Oid/S11N.sh - test/sun/security/util/Oid/SerialTest.java Changeset: b2fc8e31cecc Author: lana Date: 2013-02-11 16:14 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/b2fc8e31cecc Merge - src/share/classes/java/lang/annotation/ContainedBy.java - src/share/classes/java/lang/annotation/ContainerFor.java - test/java/net/URL/abnormal_http_urls - test/java/net/URL/ftp_urls - test/java/net/URL/jar_urls - test/java/net/URL/normal_http_urls - test/java/net/URL/runconstructor.sh - test/java/net/URL/share_file_urls - test/java/net/URL/win32_file_urls - test/sun/net/www/EncDec.doc - test/sun/net/www/MarkResetTest.java - test/sun/net/www/MarkResetTest.sh - test/sun/security/util/Oid/S11N.sh - test/sun/security/util/Oid/SerialTest.java Changeset: ff80a6b2ae9b Author: lana Date: 2013-02-13 11:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ff80a6b2ae9b Merge Changeset: a5aad284904e Author: lana Date: 2013-02-13 11:57 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/a5aad284904e Merge Changeset: cb0d91c38bc1 Author: wmdietl Date: 2013-02-13 12:47 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/cb0d91c38bc1 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk ! .hgtags ! 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/sun/reflect/generics/reflectiveObjects/TypeVariableImpl.java From wdietl at gmail.com Wed Feb 13 13:03:37 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Wed, 13 Feb 2013 21:03:37 +0000 Subject: hg: type-annotations/type-annotations/hotspot: 75 new changesets Message-ID: <20130213210624.44BD047A45@hg.openjdk.java.net> Changeset: da53cb17186a Author: katleman Date: 2013-02-07 12:32 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/da53cb17186a Added tag jdk8-b76 for changeset 20b605466ccb ! .hgtags Changeset: 6fbe8a57549d Author: amurillo Date: 2013-01-25 03:03 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/6fbe8a57549d 8006827: new hotspot build - hs25-b18 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 3c327c2b6782 Author: jmasa Date: 2013-01-03 15:03 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/3c327c2b6782 8004895: NPG: JMapPermCore test failure caused by warnings about missing field Reviewed-by: johnc ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp ! src/share/vm/memory/binaryTreeDictionary.cpp ! src/share/vm/memory/binaryTreeDictionary.hpp ! src/share/vm/runtime/vmStructs.cpp Changeset: ef1e11845e18 Author: jmasa Date: 2013-02-04 12:01 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/ef1e11845e18 Merge ! src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 5daaddd917a1 Author: coleenp Date: 2013-01-23 10:34 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/5daaddd917a1 8006040: NPG: on_stack processing wastes space in ConstantPool Summary: Added on_stack bit to flags. Also MetadataMarkOnStack is used for more than JVMTI so had to be moved. Reviewed-by: dholmes, stefank ! src/share/vm/classfile/classLoaderData.cpp + src/share/vm/classfile/metadataOnStackMark.cpp + src/share/vm/classfile/metadataOnStackMark.hpp ! src/share/vm/interpreter/linkResolver.cpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/constantPool.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiRedefineClasses.hpp Changeset: 6cf2530f7fd3 Author: minqi Date: 2013-01-24 23:30 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/6cf2530f7fd3 8005278: Serviceability Agent: jmap -heap and jstack -m fail Summary: BinaryTreeDictionary is typedef'ed as AFLBinaryTreeDictionary in vmStructs and in SA we still use old name for that. FreeList now is a template based class which is not reflect in SA type library. When SA does calculation of heap for CMS, the former will cause failure to retrieve BinaryTreeDictionary sine the rename. The later will fail wherever it is used in SA. Reviewed-by: dholmes, sla, coleenp Contributed-by: yunda.mly at taobao.com + agent/src/share/classes/sun/jvm/hotspot/memory/AFLBinaryTreeDictionary.java - agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java ! agent/src/share/classes/sun/jvm/hotspot/memory/CompactibleFreeListSpace.java ! agent/src/share/classes/sun/jvm/hotspot/memory/FreeList.java ! src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp Changeset: 8b46b0196eb0 Author: zgu Date: 2013-01-25 10:04 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/8b46b0196eb0 8000692: Remove old KERNEL code Summary: Removed depreciated kernel VM source code from hotspot VM Reviewed-by: dholmes, acorn ! make/Makefile ! make/bsd/makefiles/dtrace.make ! make/solaris/Makefile ! make/solaris/makefiles/dtrace.make - make/solaris/makefiles/kernel.make ! make/windows/build.bat ! make/windows/create_obj_files.sh ! make/windows/makefiles/defs.make ! make/windows/makefiles/projectcreator.make ! make/windows/makefiles/vm.make ! src/cpu/x86/vm/assembler_x86.hpp ! src/share/vm/classfile/systemDictionary.cpp ! src/share/vm/classfile/systemDictionary.hpp ! src/share/vm/classfile/vmSymbols.hpp ! src/share/vm/prims/jniCheck.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiCodeBlobEvents.hpp ! src/share/vm/prims/jvmtiEnv.cpp ! src/share/vm/prims/jvmtiEnvBase.cpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExtensions.hpp ! src/share/vm/prims/jvmtiImpl.cpp ! src/share/vm/prims/jvmtiImpl.hpp ! src/share/vm/prims/jvmtiRawMonitor.hpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiTagMap.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/arguments.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmStructs.hpp ! src/share/vm/runtime/vm_version.cpp ! src/share/vm/services/attachListener.cpp ! src/share/vm/services/attachListener.hpp Changeset: edd76a5856f7 Author: sspitsyn Date: 2013-01-24 22:13 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/edd76a5856f7 8005128: JSR 292: the mlvm redefineClassInBootstrap test crashes in ConstantPool::compare_entry_to Summary: When constant pool is copied in merge_constant_pools the invokedynamic operands must be copied before. Reviewed-by: coleenp, twisti Contributed-by: serguei.spitsyn at oracle.com ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/constantPool.hpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp Changeset: 4a0dd3799a44 Author: minqi Date: 2013-01-25 04:23 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/4a0dd3799a44 Merge Changeset: 8d1fb417a42d Author: minqi Date: 2013-01-25 13:47 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/8d1fb417a42d Merge ! src/share/vm/prims/jvmtiRedefineClasses.cpp Changeset: cf8470eaf7e5 Author: acorn Date: 2013-01-27 21:58 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/cf8470eaf7e5 Merge - agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java - make/solaris/makefiles/kernel.make ! src/cpu/x86/vm/assembler_x86.hpp ! src/share/vm/classfile/vmSymbols.hpp Changeset: 16fb9f942703 Author: acorn Date: 2013-01-25 15:06 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/16fb9f942703 6479360: PrintClassHistogram improvements Summary: jcmd GC.class_stats (UnlockDiagnosticVMOptions) Reviewed-by: coleenp, hseigel, sla, acorn Contributed-by: ioi.lam at oracle.com ! src/share/vm/classfile/classLoaderData.cpp ! src/share/vm/classfile/classLoaderData.hpp ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/gc_implementation/shared/vmGCOperations.hpp ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/oops/annotations.cpp ! src/share/vm/oops/annotations.hpp ! src/share/vm/oops/arrayKlass.hpp ! src/share/vm/oops/constMethod.cpp ! src/share/vm/oops/constMethod.hpp ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/constantPool.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/oops/methodData.cpp ! src/share/vm/oops/methodData.hpp ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticCommand.hpp Changeset: 0d26ce8e9251 Author: acorn Date: 2013-01-28 10:34 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/0d26ce8e9251 Merge - make/solaris/makefiles/kernel.make ! src/share/vm/oops/constantPool.cpp ! src/share/vm/oops/constantPool.hpp Changeset: 815957d0203e Author: acorn Date: 2013-01-28 10:55 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/815957d0203e 8004967: Default method cause VerifyError: Illegal use of nonvirtual Summary: Recognize VM generated method in old verifier Reviewed-by: acorn, coleenp Contributed-by: bharadwaj.yadavelli at oracle.com ! make/bsd/makefiles/mapfile-vers-debug ! make/bsd/makefiles/mapfile-vers-product ! make/linux/makefiles/mapfile-vers-debug ! make/linux/makefiles/mapfile-vers-product ! make/solaris/makefiles/mapfile-vers ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h Changeset: 7885e162c30f Author: acorn Date: 2013-01-28 09:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/7885e162c30f Merge Changeset: 9be6cde7919d Author: ctornqvi Date: 2013-01-25 10:14 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/9be6cde7919d 8006413: Add utility classes for writing better multiprocess tests in jtreg Summary: Add a few utility classes to test/testlibrary to support multi process testing in jtreg tests. Added a test case for one of the utility classes. Also reviewed by Vitaly Davidovich Reviewed-by: brutisso, dholmes, vlivanov, nloodin, mgerdin + test/testlibrary/OutputAnalyzerTest.java + test/testlibrary/com/oracle/java/testlibrary/JDKToolFinder.java + test/testlibrary/com/oracle/java/testlibrary/OutputAnalyzer.java + test/testlibrary/com/oracle/java/testlibrary/OutputBuffer.java + test/testlibrary/com/oracle/java/testlibrary/ProcessTools.java + test/testlibrary/com/oracle/java/testlibrary/StreamPumper.java Changeset: baf7fac3167e Author: hseigel Date: 2013-02-01 14:14 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/baf7fac3167e 8006298: Specifying malformed JFR options (-XX:+FlightRecorderOptions) outputs non-sensical error Summary: Change error messages for malformed options so the messages are more useful. Reviewed-by: mikael, kvn, nloodin ! src/share/vm/runtime/arguments.cpp Changeset: 4c75576d18d0 Author: hseigel Date: 2013-02-01 13:30 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/4c75576d18d0 Merge Changeset: 9bf5f643d1cf Author: sspitsyn Date: 2013-01-31 20:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/9bf5f643d1cf 8006542: JSR 292: the VM_RedefineClasses::append_entry() must support invokedynamic entry kinds Summary: Need a support for invokedynamic entry kinds when new and old constant pools are merged. Reviewed-by: coleenp, twisti Contributed-by: serguei.spitsyn at oracle.com ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiRedefineClasses.hpp Changeset: dc31f560d6e7 Author: sspitsyn Date: 2013-01-31 20:09 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/dc31f560d6e7 8006546: JSR 292: typos in the ConstantPool::copy_cp_impl() Summary: Simple typos that need to be fixed Reviewed-by: coleenp, twisti Contributed-by: serguei.spitsyn at oracle.com ! src/share/vm/oops/constantPool.cpp Changeset: 79c1bb8fce5d Author: sspitsyn Date: 2013-01-31 20:11 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/79c1bb8fce5d 8006731: JSR 292: the VM_RedefineClasses::rewrite_cp_refs_in_method() must support invokedynamic Summary: The invokedynamic bytecode ref to a CP entry needs to be checked and fixed as well. Reviewed-by: coleenp, twisti Contributed-by: serguei.spitsyn at oracle.com ! src/share/vm/prims/jvmtiRedefineClasses.cpp Changeset: 9a9f870325cf Author: minqi Date: 2013-02-01 10:57 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/9a9f870325cf Merge Changeset: b935589d2807 Author: minqi Date: 2013-02-01 14:42 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/b935589d2807 Merge Changeset: 44c5fcd9cb25 Author: iklam Date: 2013-01-24 10:57 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/44c5fcd9cb25 8006280: Need to reorder metadata structures to reduce size (64-bit) Summary: Reordered Klass, InstanceKlass and Method to save 8 bytes each Reviewed-by: coleenp, jiangli Contributed-by: ioi.lam at oracle.com ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/method.hpp Changeset: 1eae78177059 Author: jiangli Date: 2013-02-01 15:25 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/1eae78177059 Merge - make/solaris/makefiles/kernel.make ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/method.hpp Changeset: dc8ad3fd7050 Author: jiangli Date: 2013-02-01 19:36 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/dc8ad3fd7050 Merge Changeset: 4102b59539ce Author: ctornqvi Date: 2013-02-01 23:48 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/4102b59539ce 8005012: Add WB APIs to better support NMT testing Summary: Add WB API functions to enable better NMT testing Reviewed-by: dholmes, zgu ! src/share/tools/whitebox/sun/hotspot/WhiteBox.java ! src/share/vm/memory/allocation.hpp ! src/share/vm/prims/whitebox.cpp ! src/share/vm/services/memBaseline.cpp ! src/share/vm/services/memPtr.cpp ! src/share/vm/services/memPtr.hpp ! src/share/vm/services/memRecorder.cpp ! src/share/vm/services/memRecorder.hpp ! src/share/vm/services/memTrackWorker.cpp ! src/share/vm/services/memTrackWorker.hpp ! src/share/vm/services/memTracker.cpp ! src/share/vm/services/memTracker.hpp Changeset: 4460acf8687b Author: ctornqvi Date: 2013-02-02 07:24 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/4460acf8687b Merge Changeset: 9fe95b01ad32 Author: ctornqvi Date: 2013-02-02 08:46 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/9fe95b01ad32 Merge Changeset: 43badbe2717a Author: minqi Date: 2013-01-31 17:43 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/43badbe2717a 8000973: SA on windows thread inspection is broken Summary: After bug 7161732, On Windows SA could not find correct address of thread_id of OSThread since _thread_id moved to end of the class . The presupposition of the address is following thread handle no longer stands. Fix by adding thread_id field to OSThread and getting the address directly from OSThread. Reviewed-by: nloodin, sspitsyn Contributed-by: yumin.qi at oracle.com ! agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/amd64/WindbgAMD64Thread.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/windbg/x86/WindbgX86Thread.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/OSThread.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/win32_amd64/Win32AMD64JavaThreadPDAccess.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/win32_x86/Win32X86JavaThreadPDAccess.java Changeset: 65b632b77a97 Author: minqi Date: 2013-02-01 22:41 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/65b632b77a97 Merge Changeset: ff5401ad5635 Author: minqi Date: 2013-02-02 03:51 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/ff5401ad5635 Merge Changeset: 879c6de913d6 Author: ctornqvi Date: 2013-02-02 16:34 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/879c6de913d6 8005013: Add NMT tests Summary: Add tests for the Native Memory Tracking feature, includes regression tests for 8005936 and 8004802 Reviewed-by: zgu, coleenp ! test/TEST.ROOT + test/runtime/NMT/AllocTestType.java + test/runtime/NMT/BaselineWithParameter.java + test/runtime/NMT/CommandLineDetail.java + test/runtime/NMT/CommandLineEmptyArgument.java + test/runtime/NMT/CommandLineInvalidArgument.java + test/runtime/NMT/CommandLineSummary.java + test/runtime/NMT/CommandLineTurnOffNMT.java + test/runtime/NMT/JcmdScale.java + test/runtime/NMT/JcmdWithNMTDisabled.java + test/runtime/NMT/PrintNMTStatistics.java + test/runtime/NMT/PrintNMTStatisticsWithNMTDisabled.java + test/runtime/NMT/ShutdownTwice.java + test/runtime/NMT/SummaryAfterShutdown.java + test/runtime/NMT/SummarySanityCheck.java Changeset: a7f9a1195d86 Author: ctornqvi Date: 2013-02-02 20:13 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/a7f9a1195d86 8000363: runtime/7158988/FieldMonitor.java fails with exception Summary: Removed unnecessary shell script in the test. Reviewed-by: coleenp, sla ! test/runtime/7158988/FieldMonitor.java - test/runtime/7158988/TestFieldMonitor.sh Changeset: 8f696cf1a0fb Author: dsamersoff Date: 2013-02-03 22:28 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/8f696cf1a0fb 8002048: Protocol to discovery of manageable Java processes on a network Summary: Introduce a protocol to discover manageble Java instances across a network subnet, JDP Reviewed-by: sla, dfuchs ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticCommand.hpp Changeset: c4ef3380a70b Author: hseigel Date: 2013-02-03 16:49 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/c4ef3380a70b 7197672: There are issues with shared data on windows Summary: On Windows, set rw protection on the CDS file just before removing it. Reviewed-by: dcubed, iklam ! src/share/vm/memory/filemap.cpp Changeset: ce5467120c84 Author: hseigel Date: 2013-02-03 17:12 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/ce5467120c84 Merge Changeset: 10d5f25a7c67 Author: hseigel Date: 2013-02-04 08:26 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/10d5f25a7c67 8000968: NPG: UseCompressedKlassPointers asserts with ObjectAlignmentInBytes for > 32G CompressedOops Summary: Pick a base that works for both CompressedOpps alignment and CompressedKlassPtrs alignment. Reviewed-by: kvn, roland ! src/share/vm/memory/universe.cpp ! src/share/vm/memory/universe.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/runtime/arguments.cpp + test/runtime/8000968/Test8000968.sh Changeset: 24a91505f9d5 Author: emc Date: 2013-02-04 13:05 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/24a91505f9d5 8006949: Update hotspot for MethodParameters format change 8006907: Hotspot should reject classfiles with multiple MethodParameters attributes Summary: Update to Hotspot's processing of MethodParameters attributes in classfiles Reviewed-by: coleenp, jrose ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/oops/constMethod.hpp ! src/share/vm/prims/jvm.cpp Changeset: 42ea5e1fad75 Author: coleenp Date: 2013-02-04 13:51 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/42ea5e1fad75 Merge Changeset: ab826603e572 Author: simonis Date: 2013-02-04 13:14 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/ab826603e572 8007475: Memory stomp with UseMallocOnly Summary: Fix off-by-one error Reviewed-by: coleenp, hseigel ! src/share/vm/classfile/stackMapFrame.hpp + test/runtime/8007475/StackMapFrameTest.java Changeset: a401757763f9 Author: coleenp Date: 2013-02-04 22:59 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/a401757763f9 Merge Changeset: 12285410684f Author: dholmes Date: 2013-02-04 23:53 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/12285410684f 8006508: Wrong frame constructor is called in os_linux_x86.cpp Reviewed-by: dholmes, coleenp Contributed-by: Jeremy Manson ! src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp ! src/os_cpu/linux_x86/vm/os_linux_x86.cpp ! src/os_cpu/windows_x86/vm/os_windows_x86.cpp Changeset: f3ea1af9207a Author: dholmes Date: 2013-02-05 00:59 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/f3ea1af9207a Merge Changeset: 454d7cc622ab Author: dcubed Date: 2013-02-06 15:22 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/454d7cc622ab Merge - agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java - make/solaris/makefiles/kernel.make ! src/share/vm/gc_implementation/concurrentMarkSweep/vmStructs_cms.hpp - test/runtime/7158988/TestFieldMonitor.sh Changeset: fcc9e7681d63 Author: vlivanov Date: 2013-02-01 02:50 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/fcc9e7681d63 8006410: allocating without ResourceMark when CompileCommand was specified Reviewed-by: kvn, vlivanov Contributed-by: Igor Ignatyev ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciInstanceKlass.cpp ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciMethodData.cpp ! src/share/vm/oops/symbol.cpp Changeset: 60bba1398c51 Author: vlivanov Date: 2013-02-01 03:02 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/60bba1398c51 8005439: no message about inline method if it specifed by CompileCommand Reviewed-by: kvn, vlivanov Contributed-by: Igor Ignatyev ! src/share/vm/c1/c1_GraphBuilder.cpp ! src/share/vm/opto/bytecodeInfo.cpp ! src/share/vm/opto/parse.hpp Changeset: e4bb0bda20a4 Author: morris Date: 2013-01-25 16:31 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/e4bb0bda20a4 8005811: Turn off TierdCompilation in JDK8 trunk for all platforms Summary: Disable tiered compilation in jdk8 because of CodeCache and performance anomalies Reviewed-by: kvn, twisti ! src/cpu/sparc/vm/c2_globals_sparc.hpp ! src/cpu/x86/vm/c2_globals_x86.hpp Changeset: 76341426b645 Author: drchase Date: 2013-01-25 16:09 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/76341426b645 8006500: compiler/8004741/Test8004741.java fails intermediately Summary: rewrote the test to be more reliable, add test for invalid size exception Reviewed-by: kvn ! test/compiler/8004741/Test8004741.java Changeset: 9fae07c31641 Author: morris Date: 2013-01-25 16:50 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/9fae07c31641 6518907: cleanup IA64 specific code in Hotspot Summary: removed unused IA64 specific code Reviewed-by: twisti, kvn, dholmes ! agent/src/os/linux/LinuxDebuggerLocal.c ! agent/src/os/linux/libproc.h ! agent/src/os/win32/windbg/sawindbg.cpp ! src/os/linux/vm/os_linux.cpp ! src/os/windows/vm/os_windows.cpp ! src/share/vm/interpreter/bytecodeInterpreter.cpp ! src/share/vm/opto/generateOptoStub.cpp ! src/share/vm/runtime/os.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/synchronizer.cpp ! src/share/vm/runtime/vframeArray.cpp Changeset: 37c18711a0df Author: roland Date: 2013-02-04 09:11 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/37c18711a0df 8005114: VM is crashing in ciKlass*ciObjArrayKlass::element_klass() if metaspaces are full Summary: missing test for loaded klass in c1 Reviewed-by: kvn ! src/share/vm/c1/c1_Instruction.cpp Changeset: 39901f2f1abe Author: mikael Date: 2013-02-04 10:28 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/39901f2f1abe 8007403: Incorrect format arguments in adlparse.cpp Reviewed-by: kvn, twisti ! src/share/vm/adlc/adlparse.cpp Changeset: 8bd61471a109 Author: roland Date: 2013-02-04 11:30 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/8bd61471a109 8007144: Incremental inlining mistakes some call sites for dead ones and doesn't inline them Summary: wrong detection for dead call sites. Reviewed-by: kvn ! src/share/vm/opto/callGenerator.cpp Changeset: 6a51fc70a15e Author: vlivanov Date: 2013-02-05 08:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/6a51fc70a15e 8006613: adding reason to made_not_compilable Reviewed-by: kvn, vlivanov Contributed-by: Igor Ignatyev ! src/share/vm/ci/ciMethod.cpp ! src/share/vm/ci/ciMethod.hpp ! src/share/vm/compiler/compileBroker.cpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/oops/methodData.hpp ! src/share/vm/runtime/deoptimization.cpp Changeset: 4fcf990aa34a Author: drchase Date: 2013-02-06 11:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/4fcf990aa34a 8006807: C2 crash due to out of bounds array access in Parse::do_multianewarray Summary: check ndimensions before accessing length[i] element Reviewed-by: kvn Contributed-by: volker.simonis at gmail.com ! src/share/vm/opto/parse3.cpp Changeset: d05ff4bf41b3 Author: vlivanov Date: 2013-02-07 12:23 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/d05ff4bf41b3 Merge ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/oops/methodData.hpp Changeset: db9981fd3124 Author: jprovino Date: 2013-01-23 13:02 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/db9981fd3124 8005915: Unify SERIALGC and INCLUDE_ALTERNATE_GCS Summary: Rename INCLUDE_ALTERNATE_GCS to INCLUDE_ALL_GCS and replace SERIALGC with INCLUDE_ALL_GCS. Reviewed-by: coleenp, stefank ! make/bsd/makefiles/minimal1.make ! make/excludeSrc.make ! make/linux/makefiles/minimal1.make ! src/cpu/sparc/vm/c1_CodeStubs_sparc.cpp ! src/cpu/sparc/vm/c1_Runtime1_sparc.cpp ! src/cpu/sparc/vm/cppInterpreter_sparc.cpp ! src/cpu/sparc/vm/macroAssembler_sparc.cpp ! src/cpu/sparc/vm/macroAssembler_sparc.hpp ! src/cpu/sparc/vm/templateInterpreter_sparc.cpp ! src/cpu/sparc/vm/templateTable_sparc.cpp ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/c1_CodeStubs_x86.cpp ! src/cpu/x86/vm/c1_Runtime1_x86.cpp ! src/cpu/x86/vm/cppInterpreter_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.hpp ! src/cpu/x86/vm/templateInterpreter_x86_32.cpp ! src/cpu/x86/vm/templateInterpreter_x86_64.cpp ! src/cpu/x86/vm/templateTable_x86_32.cpp ! src/cpu/x86/vm/templateTable_x86_64.cpp ! src/cpu/zero/vm/assembler_zero.cpp ! src/cpu/zero/vm/cppInterpreter_zero.cpp ! src/share/vm/c1/c1_CodeStubs.hpp ! src/share/vm/c1/c1_LIRGenerator.cpp ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/ci/ciReplay.cpp ! src/share/vm/gc_implementation/g1/g1SATBCardTableModRefBS.hpp ! src/share/vm/gc_implementation/g1/heapRegion.hpp ! src/share/vm/gc_implementation/shared/allocationStats.cpp ! src/share/vm/gc_implementation/shared/allocationStats.hpp ! src/share/vm/gc_implementation/shared/concurrentGCThread.hpp ! src/share/vm/gc_implementation/shared/gSpaceCounters.cpp ! src/share/vm/gc_implementation/shared/gSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/gcAdaptivePolicyCounters.hpp ! src/share/vm/gc_implementation/shared/hSpaceCounters.hpp ! src/share/vm/gc_implementation/shared/immutableSpace.cpp ! src/share/vm/gc_implementation/shared/isGCActiveMark.hpp ! src/share/vm/gc_implementation/shared/markSweep.inline.hpp ! src/share/vm/gc_implementation/shared/mutableNUMASpace.hpp ! src/share/vm/gc_implementation/shared/mutableSpace.cpp ! src/share/vm/gc_implementation/shared/spaceCounters.cpp ! src/share/vm/gc_implementation/shared/spaceCounters.hpp ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/memory/binaryTreeDictionary.cpp ! src/share/vm/memory/cardTableModRefBS.cpp ! src/share/vm/memory/cardTableRS.cpp ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/collectorPolicy.hpp ! src/share/vm/memory/freeBlockDictionary.cpp ! src/share/vm/memory/freeList.cpp ! src/share/vm/memory/genCollectedHeap.cpp ! src/share/vm/memory/generationSpec.cpp ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/memory/space.cpp ! src/share/vm/memory/space.hpp ! src/share/vm/memory/specialized_oop_closures.hpp ! src/share/vm/memory/tenuredGeneration.cpp ! src/share/vm/memory/tenuredGeneration.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/instanceClassLoaderKlass.cpp ! src/share/vm/oops/instanceClassLoaderKlass.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/instanceMirrorKlass.cpp ! src/share/vm/oops/instanceMirrorKlass.hpp ! src/share/vm/oops/instanceRefKlass.cpp ! src/share/vm/oops/instanceRefKlass.hpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/klassPS.hpp ! src/share/vm/oops/objArrayKlass.cpp ! src/share/vm/oops/objArrayKlass.hpp ! src/share/vm/oops/objArrayKlass.inline.hpp ! src/share/vm/oops/oop.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/oops/oop.pcgc.inline.hpp ! src/share/vm/oops/oop.psgc.inline.hpp ! src/share/vm/oops/typeArrayKlass.cpp ! src/share/vm/precompiled/precompiled.hpp ! src/share/vm/prims/jni.cpp ! src/share/vm/prims/jvmtiEnvBase.hpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/jvmtiExport.hpp ! src/share/vm/prims/jvmtiTagMap.cpp ! src/share/vm/prims/nativeLookup.cpp ! src/share/vm/prims/unsafe.cpp ! src/share/vm/prims/whitebox.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/fprofiler.hpp ! src/share/vm/runtime/globals.cpp ! src/share/vm/runtime/globals_extension.hpp ! src/share/vm/runtime/init.cpp ! src/share/vm/runtime/java.cpp ! src/share/vm/runtime/safepoint.cpp ! src/share/vm/runtime/sharedRuntime.cpp ! src/share/vm/runtime/sharedRuntime.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/thread.hpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/services/attachListener.hpp ! src/share/vm/services/classLoadingService.cpp ! src/share/vm/services/classLoadingService.hpp ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticCommand.hpp ! src/share/vm/services/g1MemoryPool.hpp ! src/share/vm/services/heapDumper.cpp ! src/share/vm/services/management.cpp ! src/share/vm/services/memReporter.hpp ! src/share/vm/services/memoryPool.cpp ! src/share/vm/services/memoryPool.hpp ! src/share/vm/services/memoryService.cpp ! src/share/vm/services/psMemoryPool.hpp ! src/share/vm/services/runtimeService.cpp ! src/share/vm/utilities/macros.hpp ! src/share/vm/utilities/top.hpp ! src/share/vm/utilities/yieldingWorkgroup.cpp ! src/share/vm/utilities/yieldingWorkgroup.hpp Changeset: 8391fdd36e1f Author: dlong Date: 2013-01-27 01:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/8391fdd36e1f Merge ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.hpp ! src/share/vm/ci/ciReplay.cpp ! src/share/vm/memory/universe.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/services/heapDumper.cpp Changeset: 3c9bc17b9403 Author: bpittore Date: 2013-02-07 16:05 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/3c9bc17b9403 Merge ! src/share/vm/gc_implementation/shared/vmGCOperations.cpp ! src/share/vm/memory/binaryTreeDictionary.cpp ! src/share/vm/memory/heapInspection.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/memory/universe.cpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/klass.cpp ! src/share/vm/oops/klass.hpp ! src/share/vm/oops/oop.inline.hpp ! src/share/vm/prims/jvmtiExport.cpp ! src/share/vm/prims/whitebox.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmStructs.cpp ! src/share/vm/services/attachListener.hpp ! src/share/vm/services/diagnosticCommand.cpp ! src/share/vm/services/diagnosticCommand.hpp Changeset: df8462fbe585 Author: vladidan Date: 2013-02-07 20:40 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/df8462fbe585 Merge ! src/share/vm/ci/ciEnv.cpp ! src/share/vm/runtime/sharedRuntime.cpp Changeset: ec0c4951286c Author: stefank Date: 2013-01-29 10:51 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/ec0c4951286c 8004710: NPG: jmap could throw sun.jvm.hotspot.types.WrongTypeException after PermGen removal Summary: When calculating live object regions, make sure that the alignment reserve, at the end of a TLAB, is excluded. Reviewed-by: jmasa, brutisso ! agent/src/share/classes/sun/jvm/hotspot/oops/ObjectHeap.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/ThreadLocalAllocBuffer.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/VM.java ! src/share/vm/runtime/vmStructs.cpp Changeset: 4700e77d44c1 Author: johnc Date: 2013-02-01 13:17 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/4700e77d44c1 8006894: G1: Number of marking threads missing from PrintFlagsFinal output Summary: Set ConcGCThreads to the calculated number of marking threads. Reviewed-by: jmasa, ysr ! src/share/vm/gc_implementation/g1/concurrentMark.cpp Changeset: d9058e388631 Author: mikael Date: 2013-02-01 17:21 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/d9058e388631 8007257: NPG: metaspace.cpp: Incorrect arguments in calls to err_msg Summary: Fix size checks in assert and corrected some print formats. Also reviewed by vitalyd at gmail.com. Reviewed-by: coleenp, sspitsyn ! src/share/vm/memory/metaspace.cpp Changeset: 256d3f43c177 Author: johnc Date: 2013-01-31 10:45 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/256d3f43c177 8005875: G1: Kitchensink fails with ParallelGCThreads=0 Summary: Check that the concurrent marking worker gang exists in ConcurrentMark::print_worker_threads_on(). Changes were also reviewed by Vitaly Davidovich . Reviewed-by: brutisso ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp Changeset: 80518f4ecf32 Author: jmasa Date: 2013-02-04 12:51 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/80518f4ecf32 Merge ! src/share/vm/runtime/vmStructs.cpp Changeset: f2f0cf0f5444 Author: jmasa Date: 2013-02-04 13:26 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/f2f0cf0f5444 Merge Changeset: 06fd03af6ce4 Author: johnc Date: 2013-02-04 13:24 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/06fd03af6ce4 8001384: G1: assert(!is_null(v)) failed: narrow oop value can never be zero Summary: Flush any deferred card mark before a Java thread exits. Reviewed-by: brutisso, jmasa ! src/share/vm/runtime/thread.cpp Changeset: 84304a77c4e3 Author: johnc Date: 2013-02-04 19:40 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/84304a77c4e3 Merge Changeset: 95ccff9eee8e Author: jwilhelm Date: 2013-01-28 15:41 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/95ccff9eee8e 6348447: Specifying -XX:OldSize crashes 64-bit VMs Summary: Heap size will be set to allow for OldSize to fit. Also reviewed by vitalyd at gmail.com Reviewed-by: ehelin, jmasa ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/collectorPolicy.hpp Changeset: f90b9bceb8e5 Author: johnc Date: 2013-02-05 09:13 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/f90b9bceb8e5 8005032: G1: Cleanup serial reference processing closures in concurrent marking Summary: Reuse the parallel reference processing oop closures during serial reference processing. Reviewed-by: brutisso ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/gc_implementation/g1/concurrentMark.hpp Changeset: 50d3b37d5bcd Author: johnc Date: 2013-02-05 22:24 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/50d3b37d5bcd Merge Changeset: 1135141fb97e Author: brutisso Date: 2013-02-08 10:08 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/1135141fb97e Merge ! src/share/vm/memory/collectorPolicy.cpp ! src/share/vm/memory/collectorPolicy.hpp ! src/share/vm/runtime/thread.cpp ! src/share/vm/runtime/vmStructs.cpp Changeset: 412d722168bc Author: amurillo Date: 2013-02-08 08:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/412d722168bc Merge - agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java - make/solaris/makefiles/kernel.make - test/runtime/7158988/TestFieldMonitor.sh Changeset: cdb46031e718 Author: amurillo Date: 2013-02-08 08:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/cdb46031e718 Added tag hs25-b18 for changeset 412d722168bc ! .hgtags Changeset: cece74e6ad32 Author: wmdietl Date: 2013-02-13 13:01 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/cece74e6ad32 Automated merge with http://hg.openjdk.java.net/jdk8/tl/hotspot ! .hgtags From wdietl at gmail.com Wed Feb 13 13:08:30 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Wed, 13 Feb 2013 21:08:30 +0000 Subject: hg: type-annotations/type-annotations/jaxp: 5 new changesets Message-ID: <20130213210846.9F6C347A49@hg.openjdk.java.net> Changeset: 8f6ca8755f46 Author: ohrstrom Date: 2013-01-31 14:02 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxp/rev/8f6ca8755f46 8006872: Stop creating four jars with identical content in the new build system. Reviewed-by: erikj ! makefiles/BuildJaxp.gmk Changeset: 0c08593944d0 Author: katleman Date: 2013-02-05 18:54 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxp/rev/0c08593944d0 Merge Changeset: 02195d0e96b9 Author: katleman Date: 2013-02-07 12:32 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxp/rev/02195d0e96b9 Added tag jdk8-b76 for changeset 0c08593944d0 ! .hgtags Changeset: 573e789c187a Author: lana Date: 2013-02-11 16:12 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxp/rev/573e789c187a Merge Changeset: f23dbec3f5d8 Author: wmdietl Date: 2013-02-13 13:08 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxp/rev/f23dbec3f5d8 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jaxp ! .hgtags From wdietl at gmail.com Wed Feb 13 13:07:24 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Wed, 13 Feb 2013 21:07:24 +0000 Subject: hg: type-annotations/type-annotations: 12 new changesets Message-ID: <20130213210725.E795A47A46@hg.openjdk.java.net> Changeset: 7817368287cd Author: mduigou Date: 2013-02-06 11:12 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/7817368287cd 8006595: Use jdk/test/Makefile targets in preference to local definitions Reviewed-by: alanb ! common/makefiles/Main.gmk ! test/Makefile Changeset: fdb1e09519ed Author: sherman Date: 2013-02-12 09:27 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/fdb1e09519ed 8007392: JSR 310: DateTime API Updates Summary: Integration of JSR310 Date/Time API for M7 Reviewed-by: darcy, alanb, naoto Contributed-by: scolebourne at joda.org, roger.riggs at oracle.com, masayoshi.okutsu at oracle.com, patrick.zhang at oracle.com ! common/makefiles/javadoc/CORE_PKGS.gmk Changeset: 6e296219633d Author: tbell Date: 2013-01-31 13:31 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/6e296219633d 8006933: Need to use nawk on Solaris to avoid awk limitations Reviewed-by: erikj, dholmes, dsamersoff ! common/makefiles/IdlCompilation.gmk Changeset: 12782ec1da5f Author: ohrstrom Date: 2013-01-31 14:00 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/12782ec1da5f 8006872: Stop creating four jars with identical content in the new build system. Reviewed-by: erikj ! common/autoconf/spec.gmk.in ! common/makefiles/JavaCompilation.gmk ! common/makefiles/javadoc/Javadoc.gmk Changeset: 7e584be2ee58 Author: ohrstrom Date: 2013-02-01 11:22 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/7e584be2ee58 Merge Changeset: 339e4df096a2 Author: erikj Date: 2013-02-04 10:53 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/339e4df096a2 8007093: build-infra: Make should fail if spec is older than configure files Reviewed-by: tbell ! common/makefiles/Main.gmk Changeset: dea045cc48ca Author: erikj Date: 2013-02-04 11:02 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/dea045cc48ca 8007275: build-infra: Create final-images target Reviewed-by: tbell ! common/autoconf/generated-configure.sh ! common/makefiles/Jprt.gmk Changeset: d3d9ab8ee7b0 Author: erikj Date: 2013-02-05 16:50 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/d3d9ab8ee7b0 8007524: build-infra: Incremental build of tools.jar broken Reviewed-by: tbell ! common/makefiles/JavaCompilation.gmk Changeset: 278af9fc67e7 Author: katleman Date: 2013-02-05 18:54 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/278af9fc67e7 Merge Changeset: 3933eebc659d Author: katleman Date: 2013-02-07 12:32 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/3933eebc659d Added tag jdk8-b76 for changeset 278af9fc67e7 ! .hgtags Changeset: 76808fb4194a Author: lana Date: 2013-02-13 11:21 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/76808fb4194a Merge ! common/makefiles/Main.gmk Changeset: 16747991b5a0 Author: wmdietl Date: 2013-02-13 13:01 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/16747991b5a0 Automated merge with http://hg.openjdk.java.net/jdk8/tl/ ! .hgtags From wdietl at gmail.com Wed Feb 13 13:08:11 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Wed, 13 Feb 2013 21:08:11 +0000 Subject: hg: type-annotations/type-annotations/jaxws: 4 new changesets Message-ID: <20130213210823.497D147A48@hg.openjdk.java.net> Changeset: 54beebb17494 Author: ohrstrom Date: 2013-01-31 14:02 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/54beebb17494 8006872: Stop creating four jars with identical content in the new build system. Reviewed-by: erikj ! makefiles/BuildJaxws.gmk Changeset: c4853f3f0e89 Author: katleman Date: 2013-02-05 18:54 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/c4853f3f0e89 Merge Changeset: 64dfba1bad16 Author: katleman Date: 2013-02-07 12:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/64dfba1bad16 Added tag jdk8-b76 for changeset c4853f3f0e89 ! .hgtags Changeset: 9414134ce0c2 Author: wmdietl Date: 2013-02-13 13:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/9414134ce0c2 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jaxws ! .hgtags From wdietl at gmail.com Wed Feb 13 13:07:46 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Wed, 13 Feb 2013 21:07:46 +0000 Subject: hg: type-annotations/type-annotations/corba: 4 new changesets Message-ID: <20130213210751.0D6E947A47@hg.openjdk.java.net> Changeset: ce106b6b7394 Author: ohrstrom Date: 2013-01-31 14:02 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/ce106b6b7394 8006872: Stop creating four jars with identical content in the new build system. Reviewed-by: erikj ! makefiles/BuildCorba.gmk Changeset: 58be6ca3c060 Author: katleman Date: 2013-02-05 18:54 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/58be6ca3c060 Merge Changeset: 35684a40c584 Author: katleman Date: 2013-02-07 12:32 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/35684a40c584 Added tag jdk8-b76 for changeset 58be6ca3c060 ! .hgtags Changeset: 7dcd2c9b3f5b Author: wmdietl Date: 2013-02-13 13:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/7dcd2c9b3f5b Automated merge with http://hg.openjdk.java.net/jdk8/tl/corba ! .hgtags From wdietl at gmail.com Wed Feb 13 14:06:10 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Wed, 13 Feb 2013 22:06:10 +0000 Subject: hg: type-annotations/type-annotations/langtools: 8 new changesets Message-ID: <20130213220638.5851247A5A@hg.openjdk.java.net> Changeset: aeadaf905d78 Author: jfranck Date: 2013-02-13 10:33 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/aeadaf905d78 8007279: Rename javax.l.model.element.Element.getAnnotations(Class) to getAnnotationsByType(Class) Reviewed-by: darcy, abuckley ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/javax/lang/model/element/Element.java ! test/tools/javac/processing/model/element/repeatingAnnotations/ElementRepAnnoTester.java Changeset: d04960f05593 Author: mcimadamore Date: 2013-02-13 17:04 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/d04960f05593 8006345: Report Synthesized Parameters in java.lang.reflect.Parameter API 8006896: ClassReader doesn't see MethodParameters attr for method of anon inner class 8007098: Output Synthesized Parameters to MethodParameters Attributes Summary: Correctly report synthesized and mandated parameters Reviewed-by: mcimadamore, jjg Contributed-by: eric.mccorkle at oracle.com ! src/share/classes/com/sun/tools/classfile/AccessFlags.java ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Symbol.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/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javap/AttributeWriter.java Changeset: 2d6789a725a4 Author: ohrstrom Date: 2013-01-31 14:01 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/2d6789a725a4 8006872: Stop creating four jars with identical content in the new build system. Reviewed-by: erikj ! makefiles/BuildLangtools.gmk Changeset: e81839b32337 Author: katleman Date: 2013-02-05 18:55 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/e81839b32337 Merge Changeset: 6fde20398015 Author: katleman Date: 2013-02-07 12:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/6fde20398015 Added tag jdk8-b76 for changeset e81839b32337 ! .hgtags Changeset: 89c664151689 Author: lana Date: 2013-02-11 16:15 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/89c664151689 Merge Changeset: 3f9875aa5d67 Author: lana Date: 2013-02-13 11:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/3f9875aa5d67 Merge Changeset: cf9bf24b5b84 Author: wmdietl Date: 2013-02-13 14:06 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/cf9bf24b5b84 Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! .hgtags ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Symbol.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/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javap/AttributeWriter.java From steve.sides at oracle.com Wed Feb 13 15:05:33 2013 From: steve.sides at oracle.com (Steve Sides) Date: Wed, 13 Feb 2013 15:05:33 -0800 Subject: recent build status Message-ID: <511C1C3D.3020501@oracle.com> We had a jdk8 type-annotations build last night due to recent changes. There are 5 failing tests. Two are my 'Combinations' tests, for which I have fixes but they're not put back anywhere). The other three are: com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java While these would have been failing, I believe all these started showing up afresh when a change was made to "make failing tests fail"(1/30/13 ). Other results for jck, regression and sqe tools tests are in line with the jdk8 tl build. -steve -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/type-annotations-dev/attachments/20130213/4d5f661c/attachment.html From wdietl at gmail.com Wed Feb 13 15:08:39 2013 From: wdietl at gmail.com (Werner Dietl) Date: Wed, 13 Feb 2013 15:08:39 -0800 Subject: recent build status In-Reply-To: <511C1C3D.3020501@oracle.com> References: <511C1C3D.3020501@oracle.com> Message-ID: Thanks for the update, Steve. Joel, which tests did you expect to fail because of the recent TargetTypes renumbering? Maybe we are not running a test suite for those? cu, WMD. On Wed, Feb 13, 2013 at 3:05 PM, Steve Sides wrote: > We had a jdk8 type-annotations build last night due to recent changes. > There are 5 failing tests. Two are my 'Combinations' tests, for which I have > fixes but they're not put back anywhere). > > The other three are: > com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java > tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java > tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java > > While these would have been failing, I believe all these started showing up > afresh when a change was made to "make failing tests fail"(1/30/13). > > Other results for jck, regression and sqe tools tests are in line with the > jdk8 tl build. > > -steve -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Thu Feb 14 09:43:59 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 14 Feb 2013 09:43:59 -0800 Subject: impl for annotated types Message-ID: <511D225F.5050909@oracle.com> Werner, How well encapsulated is the code to create instances of javac.code.Type that have annotations? For example, is it always encapsulated within a method such as Type.createAnnotatedType, for use like Type annoType = type.createAnnotatedType(annos); As a follow-up, think of this as a thinking-aloud hypothetical question.... Previously, we've considered delegation and subtyping as a way of representing annotated types. What if we gave up on the "minimize space" requirement and added a List into each Type? How easy would that be? -- Jon From jonathan.gibbons at oracle.com Thu Feb 14 09:48:04 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 14 Feb 2013 09:48:04 -0800 Subject: impl for annotated types In-Reply-To: <511D225F.5050909@oracle.com> References: <511D225F.5050909@oracle.com> Message-ID: <511D2354.7000205@oracle.com> On 02/14/2013 09:43 AM, Jonathan Gibbons wrote: > Werner, > > How well encapsulated is the code to create instances of > javac.code.Type that have annotations? For example, is it always > encapsulated within a method such as Type.createAnnotatedType, for use > like > Type annoType = type.createAnnotatedType(annos); > > As a follow-up, think of this as a thinking-aloud hypothetical > question.... > > Previously, we've considered delegation and subtyping as a way of > representing annotated types. What if we gave up on the "minimize > space" requirement and added a List into each > Type? How easy would that be? > > -- Jon Joel, Assuming we have to go for some combination of ugly methods and ugly types for javax.lang.model.type, how well would such a proposal fit in with the proposed ugly types? -- Jon From joel.franck at oracle.com Thu Feb 14 09:52:55 2013 From: joel.franck at oracle.com (=?iso-8859-1?Q?Joel_Borggr=E9n-Franck?=) Date: Thu, 14 Feb 2013 18:52:55 +0100 Subject: recent build status In-Reply-To: References: <511C1C3D.3020501@oracle.com> Message-ID: Hi all, In the jdk repository there are two tests in test/java/lang/annotations/ that test annotations on TypeParameters and core reflection for type annotations. I just realized depending on how you renumber, three might not be any failures, but eventually we need to sync up the jdk parser and the javac byte code generator. cheers /Joel On Feb 14, 2013, at 12:08 AM, Werner Dietl wrote: > Thanks for the update, Steve. > > Joel, which tests did you expect to fail because of the recent > TargetTypes renumbering? > Maybe we are not running a test suite for those? > > cu, WMD. > > On Wed, Feb 13, 2013 at 3:05 PM, Steve Sides wrote: >> We had a jdk8 type-annotations build last night due to recent changes. >> There are 5 failing tests. Two are my 'Combinations' tests, for which I have >> fixes but they're not put back anywhere). >> >> The other three are: >> com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java >> tools/javac/annotations/typeAnnotations/failures/CantAnnotateStaticClass.java >> tools/javac/annotations/typeAnnotations/referenceinfos/MultiCatch.java >> >> While these would have been failing, I believe all these started showing up >> afresh when a change was made to "make failing tests fail"(1/30/13). >> >> Other results for jck, regression and sqe tools tests are in line with the >> jdk8 tl build. >> >> -steve > > > > -- > http://www.google.com/profiles/wdietl From joel.franck at oracle.com Thu Feb 14 09:58:06 2013 From: joel.franck at oracle.com (=?iso-8859-1?Q?Joel_Borggr=E9n-Franck?=) Date: Thu, 14 Feb 2013 18:58:06 +0100 Subject: impl for annotated types In-Reply-To: <511D2354.7000205@oracle.com> References: <511D225F.5050909@oracle.com> <511D2354.7000205@oracle.com> Message-ID: <65E2F0F2-6DF6-4751-AB2E-5FA91C16141C@oracle.com> Hi all, On Feb 14, 2013, at 6:48 PM, Jonathan Gibbons wrote: > On 02/14/2013 09:43 AM, Jonathan Gibbons wrote: >> Werner, >> >> How well encapsulated is the code to create instances of javac.code.Type that have annotations? For example, is it always encapsulated within a method such as Type.createAnnotatedType, for use like >> Type annoType = type.createAnnotatedType(annos); The current implementation is not that well encapsulated but I improve on this in my patch to add javax.lang.model. That can of course be refactored out of the model work and applied separately. >> >> As a follow-up, think of this as a thinking-aloud hypothetical question.... >> >> Previously, we've considered delegation and subtyping as a way of representing annotated types. What if we gave up on the "minimize space" requirement and added a List into each Type? How easy would that be? >> > > Assuming we have to go for some combination of ugly methods and ugly types for javax.lang.model.type, how well would such a proposal fit in with the proposed ugly types? I think this would be quite easy and should also work well with the model implementation. In some ways this makes sense because we can then address the space issues with all kinds of annotations, IMHO they are related issues. cheers /Joel From wdietl at gmail.com Thu Feb 14 10:23:18 2013 From: wdietl at gmail.com (Werner Dietl) Date: Thu, 14 Feb 2013 10:23:18 -0800 Subject: impl for annotated types In-Reply-To: <65E2F0F2-6DF6-4751-AB2E-5FA91C16141C@oracle.com> References: <511D225F.5050909@oracle.com> <511D2354.7000205@oracle.com> <65E2F0F2-6DF6-4751-AB2E-5FA91C16141C@oracle.com> Message-ID: Hi Jon, Joel, all, there are currently 5 places where AnnotatedTypes are instantiated, so the required changes should be quite encapsulated. cu, WMD. On Thu, Feb 14, 2013 at 9:58 AM, Joel Borggr?n-Franck wrote: > Hi all, > > On Feb 14, 2013, at 6:48 PM, Jonathan Gibbons wrote: > >> On 02/14/2013 09:43 AM, Jonathan Gibbons wrote: >>> Werner, >>> >>> How well encapsulated is the code to create instances of javac.code.Type that have annotations? For example, is it always encapsulated within a method such as Type.createAnnotatedType, for use like >>> Type annoType = type.createAnnotatedType(annos); > > The current implementation is not that well encapsulated but I improve on this in my patch to add javax.lang.model. That can of course be refactored out of the model work and applied separately. > >>> >>> As a follow-up, think of this as a thinking-aloud hypothetical question.... >>> >>> Previously, we've considered delegation and subtyping as a way of representing annotated types. What if we gave up on the "minimize space" requirement and added a List into each Type? How easy would that be? >>> >> >> Assuming we have to go for some combination of ugly methods and ugly types for javax.lang.model.type, how well would such a proposal fit in with the proposed ugly types? > > > I think this would be quite easy and should also work well with the model implementation. > > In some ways this makes sense because we can then address the space issues with all kinds of annotations, IMHO they are related issues. > > cheers > /Joel -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Thu Feb 14 16:41:44 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Fri, 15 Feb 2013 00:41:44 +0000 Subject: hg: type-annotations/type-annotations/jdk: 8 new changesets Message-ID: <20130215004347.11C7147AA7@hg.openjdk.java.net> Changeset: 83c09292f5ad Author: ksrini Date: 2013-02-13 12:56 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/83c09292f5ad 8005750: [parfait] Memory leak at jdk/src/share/bin/parse_manifest.c Reviewed-by: jjh ! src/share/bin/parse_manifest.c Changeset: b13247d5408d Author: dcubed Date: 2013-02-13 13:22 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/b13247d5408d 8007935: java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh should use $COMPILEJAVA for javac Reviewed-by: sspitsyn, alanb ! test/java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh Changeset: 4f520ce7ba3f Author: acorn Date: 2013-02-13 16:09 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/4f520ce7ba3f 8007888: jdk fix default method: VerifyError: Illegal use of nonvirtual Summary: Recognize VM generated method in old verifier. With 8004967 Reviewed-by: coleenp, acorn Contributed-by: bharadwaj.yadavalli at oracle.com ! src/share/javavm/export/jvm.h ! src/share/native/common/check_code.c Changeset: e6f34051c60c Author: acorn Date: 2013-02-13 16:15 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/e6f34051c60c Merge Changeset: 153884b550f0 Author: chegar Date: 2013-02-14 13:01 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/153884b550f0 8008201: Add java/lang/Class/asSubclass/BasicUnit.java to the ProblemList Reviewed-by: mcimadamore ! test/ProblemList.txt Changeset: e57019d2f34a Author: mduigou Date: 2013-02-13 14:50 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/e57019d2f34a 8008167: IdentityHashMap.[keySet|values|entrySet].toArray speed-up Reviewed-by: mduigou, martin Contributed-by: Peter Levart ! src/share/classes/java/util/IdentityHashMap.java Changeset: 1405ad6afb1e Author: bharadwaj Date: 2013-02-14 11:09 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/1405ad6afb1e 8007736: VerifyError for use of static method in interface Reviewed-by: mchung ! src/share/native/common/check_code.c + test/vm/verifier/TestStaticIF.java Changeset: bc2942bbb49e Author: wmdietl Date: 2013-02-14 16:41 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/bc2942bbb49e Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk From wdietl at gmail.com Sun Feb 17 20:38:30 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 18 Feb 2013 04:38:30 +0000 Subject: hg: type-annotations/type-annotations/corba: 2 new changesets Message-ID: <20130218043834.E528247B46@hg.openjdk.java.net> Changeset: e725dd195858 Author: dmeetry Date: 2013-02-15 01:49 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/e725dd195858 7199858: Marshal exception is wrong Reviewed-by: lancea ! src/share/classes/com/sun/corba/se/impl/corba/TypeCodeImpl.java Changeset: d17333363f8b Author: wmdietl Date: 2013-02-17 20:38 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/d17333363f8b Automated merge with http://hg.openjdk.java.net/jdk8/tl/corba From wdietl at gmail.com Sun Feb 17 20:37:30 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 18 Feb 2013 04:37:30 +0000 Subject: hg: type-annotations/type-annotations/langtools: 27 new changesets Message-ID: <20130218043851.E05E147B47@hg.openjdk.java.net> Changeset: e4c3c5391aaf Author: wmdietl Date: 2013-02-17 19:16 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/e4c3c5391aaf Ignore AnnotatedType when determining the name of an anonymous class. ! src/share/classes/com/sun/tools/javac/code/Type.java Changeset: c26f5536d869 Author: wmdietl Date: 2013-02-17 19:17 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/c26f5536d869 Always set the annotation attribute. Clarify comment. ! src/share/classes/com/sun/tools/javac/comp/Annotate.java Changeset: b06816794394 Author: wmdietl Date: 2013-02-17 19:22 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b06816794394 Ensure that declaration annotations can only be used for anonymous class instantiations, not for other instantiations. Also, a receiver parameter must not use declaration annotations. Change the error message for a receiver parameter in a static method. Work around an ordering issue that is a pain. ! src/share/classes/com/sun/tools/javac/comp/Attr.java Changeset: 6182a906cba1 Author: wmdietl Date: 2013-02-17 19:23 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/6182a906cba1 Ensure annotations in an annotated type tree are validated. ! src/share/classes/com/sun/tools/javac/comp/Check.java Changeset: 5d5488d2ce00 Author: wmdietl Date: 2013-02-17 19:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/5d5488d2ce00 Prevent entering type annotations twice by visiting trees only on the right symbol. Clean up the organizeTypeAnnotationsSignatures interface. ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Changeset: b832dc269136 Author: wmdietl Date: 2013-02-17 19:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b832dc269136 No type annotations with an UNKNOWN position should exist. Correctly format an error for this. ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Changeset: 53a635e47bda Author: wmdietl Date: 2013-02-17 19:27 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/53a635e47bda Allow declaration annotations for anonymous class instantiations. ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java Changeset: b690b50ddc8c Author: wmdietl Date: 2013-02-17 20:26 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b690b50ddc8c More cleanups to when annotations are validated. ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/Check.java Changeset: 5912fbbeb6b9 Author: wmdietl Date: 2013-02-17 20:27 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/5912fbbeb6b9 Use a separate error message for using a receiver parameter when none is allowed. ! src/share/classes/com/sun/tools/javac/resources/compiler.properties Changeset: a1d43face262 Author: wmdietl Date: 2013-02-17 20:27 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/a1d43face262 Output declaration annotations on an anonymous class instantiation. ! src/share/classes/com/sun/tools/javac/tree/Pretty.java Changeset: b503e62ca0e7 Author: wmdietl Date: 2013-02-17 20:29 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b503e62ca0e7 Make annotationType generally usable, handle instantiation of anonymous classes, ensure type annotations are only present once and never have UNKNOWN position. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java Changeset: 4a815e93138d Author: wmdietl Date: 2013-02-17 20:32 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/4a815e93138d Expand tests for when declaration annotations are legal and add missing TYPE_USE Targets. ! test/tools/javac/annotations/typeAnnotations/attribution/Scopes.java ! test/tools/javac/annotations/typeAnnotations/failures/StaticMethods.java ! test/tools/javac/annotations/typeAnnotations/failures/StaticMethods.out + test/tools/javac/annotations/typeAnnotations/failures/common/arrays/DeclarationAnnotation.java + test/tools/javac/annotations/typeAnnotations/failures/common/arrays/DeclarationAnnotation.out + test/tools/javac/annotations/typeAnnotations/failures/common/receiver/DeclarationAnnotation.java + test/tools/javac/annotations/typeAnnotations/failures/common/receiver/DeclarationAnnotation.out ! test/tools/javac/annotations/typeAnnotations/failures/common/receiver/Nesting.java ! test/tools/javac/annotations/typeAnnotations/failures/common/receiver/StaticThings.out ! test/tools/javac/annotations/typeAnnotations/failures/common/receiver/WrongType.java ! test/tools/javac/annotations/typeAnnotations/failures/common/receiver/WrongType.out ! test/tools/javac/annotations/typeAnnotations/failures/common/rest/MissingAnnotationValue.java Changeset: dbef4179abd8 Author: wmdietl Date: 2013-02-17 20:32 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/dbef4179abd8 Expand tests for when declaration annotations are legal and add missing TYPE_USE Targets. ! test/tools/javac/annotations/typeAnnotations/failures/common/rest/MissingAnnotationValue.out + test/tools/javac/annotations/typeAnnotations/failures/common/wildcards/DeclarationAnnotation.java + test/tools/javac/annotations/typeAnnotations/failures/common/wildcards/DeclarationAnnotation.out + test/tools/javac/annotations/typeAnnotations/newlocations/AnonymousClass.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/NestedTypes.java + test/tools/javac/annotations/typeAnnotations/referenceinfos/Test.java Changeset: 45651f09a242 Author: wmdietl Date: 2013-02-17 20:34 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/45651f09a242 Automated merge with http://hg.openjdk.java.net/type-annotations/type-annotations/langtools ! 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 ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java Changeset: 63872da94576 Author: darcy Date: 2013-02-13 23:05 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/63872da94576 8001457: New tests needed for library-side changes for repeating annotations Reviewed-by: darcy Contributed-by: sonali.goel at oracle.com ! test/tools/javac/annotations/repeatingAnnotations/combo/Helper.java + test/tools/javac/annotations/repeatingAnnotations/combo/ReflectionTest.java + test/tools/javac/annotations/repeatingAnnotations/combo/expectedFiles/ExpectedBase.java + test/tools/javac/annotations/repeatingAnnotations/combo/expectedFiles/ExpectedContainer.java Changeset: 88286a36bb34 Author: mchung Date: 2013-02-14 09:43 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/88286a36bb34 8006225: tools/jdeps/Basic.java failes with AssertionError 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/JdepsTask.java ! test/tools/jdeps/Basic.java Changeset: 040f02711b73 Author: jjg Date: 2013-02-15 08:28 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/040f02711b73 8007052: javap should include the descriptor for a method in verbose mode Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javap/ClassWriter.java ! src/share/classes/com/sun/tools/javap/JavapTask.java ! src/share/classes/com/sun/tools/javap/Options.java + test/tools/javap/DescriptorTest.java Changeset: 0baaae675b19 Author: mcimadamore Date: 2013-02-15 16:28 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/0baaae675b19 8006749: compiler does not allow Object protected methods to be used in lambda Summary: Check.checkFunctionalInterface should take into account 'fake' override Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/Check.java + test/tools/javac/lambda/LambdaConv26.java Changeset: f6e667f52af4 Author: mcimadamore Date: 2013-02-15 16:28 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/f6e667f52af4 8007285: AbstractMethodError instead of compile-time error when method reference with super and abstract Summary: Missing abstractness check on super rmethod references Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java + test/tools/javac/lambda/MethodReference62.java + test/tools/javac/lambda/MethodReference62.out Changeset: 4ff468de829d Author: mcimadamore Date: 2013-02-15 16:29 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/4ff468de829d 8007462: Fix provisional applicability for method references Summary: Add speculative arity-based check to rule out potential candidates when stuck reference is passed to method Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties + test/tools/javac/diags/examples/IncompatibleArgTypesInMethodRef.java + test/tools/javac/lambda/TargetType60.java + test/tools/javac/lambda/TargetType60.out Changeset: 3cd997b9fd84 Author: mcimadamore Date: 2013-02-15 16:30 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/3cd997b9fd84 8007535: Compiler crashes on @FunctionalInterface used on interface with two inherited methods with same signatures Summary: Bad check in Types.interfaceCandidates Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/lambda/FunctionalInterfaceAnno02.java Changeset: 186023614cd3 Author: mcimadamore Date: 2013-02-15 16:31 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/186023614cd3 8007427: Annotation element as '_' gives compiler error instead of a warning 8007401: Write test to check for generation of warnings when '_' is used as an identifier Summary: Extended identifier production not used in annotation values Reviewed-by: jjg Contributed-by: sonali.goel at oracle.com ! src/share/classes/com/sun/tools/javac/parser/JavacParser.java + test/tools/javac/lambda/IdentifierTest.java + test/tools/javac/lambda/IdentifierTest.out Changeset: 258c72fa7fa2 Author: mcimadamore Date: 2013-02-15 16:37 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/258c72fa7fa2 Merge Changeset: da2f7dd53915 Author: mcimadamore Date: 2013-02-15 18:13 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/da2f7dd53915 8008309: TargetType60 fails because of bad golden file Summary: bad golden file Reviewed-by: jjg ! test/tools/javac/lambda/TargetType60.out Changeset: 9fb4f223a90d Author: jjg Date: 2013-02-15 11:26 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/9fb4f223a90d 8008313: 8007052 breaks test/tools/javap/MethodParameters.java Reviewed-by: darcy ! test/tools/javap/MethodParameters.java Changeset: f1f605f85850 Author: rfield Date: 2013-02-15 18:40 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/f1f605f85850 8004969: Generate $deserializeLambda$ method 8006763: super in method reference used in anonymous class - ClassFormatError is produced 8005632: Inner classes within lambdas cause build failures 8005653: Lambdas containing inner classes referencing external type variables do not correctly parameterize the inner classes Reviewed-by: mcimadamore ! src/share/classes/com/sun/tools/javac/code/Symtab.java ! src/share/classes/com/sun/tools/javac/code/Types.java ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.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/util/Names.java + test/tools/javac/lambda/LambdaInnerTypeVarArgs.java + test/tools/javac/lambda/LambdaInnerTypeVarReflect.java + test/tools/javac/lambda/MethodReference61.java Changeset: e8b1c02dad3b Author: wmdietl Date: 2013-02-17 20:35 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/e8b1c02dad3b Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! 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/Resolve.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/parser/JavacParser.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/util/Names.java From wdietl at gmail.com Sun Feb 17 20:37:31 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 18 Feb 2013 04:37:31 +0000 Subject: hg: type-annotations/type-annotations/jdk: 6 new changesets Message-ID: <20130218043940.E1F9F47B48@hg.openjdk.java.net> Changeset: 1ce1a307cded Author: sherman Date: 2013-02-15 01:17 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/1ce1a307cded 8008254: j.u.Calendar.JavatimeTest failed at TL b78 pit testing Summary: to use j.t.ZoneId zone name to keep round-trip Reviewed-by: okutsu ! test/java/util/Calendar/JavatimeTest.java Changeset: 048637b40787 Author: chegar Date: 2013-02-15 11:06 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/048637b40787 8008223: java/net/BindException/Test.java fails rarely Reviewed-by: khazra, alanb ! test/java/net/BindException/Test.java Changeset: 7748ffdca16a Author: rfield Date: 2013-02-16 12:36 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/7748ffdca16a 8004970: Implement serialization in the lambda metafactory Reviewed-by: forax ! src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java ! src/share/classes/java/lang/invoke/InnerClassLambdaMetafactory.java ! src/share/classes/java/lang/invoke/LambdaMetafactory.java ! src/share/classes/java/lang/invoke/MethodHandleInfo.java + src/share/classes/java/lang/invoke/SerializedLambda.java ! src/share/classes/java/lang/invoke/TypeConvertingMethodAdapter.java + test/java/lang/invoke/lambda/LambdaSerialization.java Changeset: 43726ed11fb3 Author: sherman Date: 2013-02-17 01:01 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/43726ed11fb3 8008348: The leftover jdk/make/tools/javazic causes build problems with hs25-b19 control Summary: To remove jdk/make/tools/javazic from the jdk repo Reviewed-by: alanb - make/tools/javazic/Makefile - make/tools/src/build/tools/javazic/BackEnd.java - make/tools/src/build/tools/javazic/Checksum.java - make/tools/src/build/tools/javazic/DayOfWeek.java - make/tools/src/build/tools/javazic/Gen.java - make/tools/src/build/tools/javazic/GenDoc.java - make/tools/src/build/tools/javazic/Main.java - make/tools/src/build/tools/javazic/Mappings.java - make/tools/src/build/tools/javazic/Month.java - make/tools/src/build/tools/javazic/Rule.java - make/tools/src/build/tools/javazic/RuleDay.java - make/tools/src/build/tools/javazic/RuleRec.java - make/tools/src/build/tools/javazic/Simple.java - make/tools/src/build/tools/javazic/Time.java - make/tools/src/build/tools/javazic/Timezone.java - make/tools/src/build/tools/javazic/Zone.java - make/tools/src/build/tools/javazic/ZoneRec.java - make/tools/src/build/tools/javazic/Zoneinfo.java Changeset: ce6a2fcb4c9b Author: yhuang Date: 2013-02-16 21:22 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ce6a2fcb4c9b 8006748: getISO3Country() returns wrong value Reviewed-by: naoto ! src/share/classes/java/util/LocaleISOData.java Changeset: 151b0465bf31 Author: wmdietl Date: 2013-02-17 20:36 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/151b0465bf31 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk From wdietl at gmail.com Sun Feb 17 20:50:39 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sun, 17 Feb 2013 20:50:39 -0800 Subject: Annotations on anonymous classes Message-ID: I finished implementing the changed handling for anonymous classes, as described by Alex in: http://mail.openjdk.java.net/pipermail/type-annotations-spec-experts/2013-February/000063.html Steve/SQE: I only added one simple test to newlocations: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/file/dbef4179abd8/test/tools/javac/annotations/typeAnnotations/newlocations/AnonymousClass.java I tested that the annotations end up in the right locations using javap. None of the existing test styles seemed suitable to test for annotations on an anonymous class. Please do expand the tests and let me know if you see any issues with this. cu, WMD. -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Sun Feb 17 23:59:43 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 18 Feb 2013 07:59:43 +0000 Subject: hg: type-annotations/type-annotations/langtools: Fix handling of nested types in anonymous class instantiations. Message-ID: <20130218075954.8A48647B4B@hg.openjdk.java.net> Changeset: 20d3735b6a7b Author: wmdietl Date: 2013-02-17 23:56 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/20d3735b6a7b Fix handling of nested types in anonymous class instantiations. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java From wdietl at gmail.com Mon Feb 18 00:32:43 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 18 Feb 2013 08:32:43 +0000 Subject: hg: type-annotations/type-annotations/langtools: Process the class body of an anonymous class instantiation. Message-ID: <20130218083252.1053447B51@hg.openjdk.java.net> Changeset: f35c7284d8dc Author: wmdietl Date: 2013-02-18 00:31 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/f35c7284d8dc Process the class body of an anonymous class instantiation. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java From steve.sides at oracle.com Mon Feb 18 11:38:59 2013 From: steve.sides at oracle.com (Steve Sides) Date: Mon, 18 Feb 2013 11:38:59 -0800 Subject: Annotations on anonymous classes In-Reply-To: References: Message-ID: <51228353.4060604@oracle.com> On 2/17/2013 8:50 PM, Werner Dietl wrote: > I finished implementing the changed handling for anonymous classes, as > described by Alex in: > > http://mail.openjdk.java.net/pipermail/type-annotations-spec-experts/2013-February/000063.html > > Steve/SQE: I only added one simple test to newlocations: > http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/file/dbef4179abd8/test/tools/javac/annotations/typeAnnotations/newlocations/AnonymousClass.java > > I tested that the annotations end up in the right locations using javap. > None of the existing test styles seemed suitable to test for > annotations on an anonymous class. > > Please do expand the tests and let me know if you see any issues with this. > > cu, WMD. > There are some in CombinationsTargetTest1.java (case4), but they are currently @ignore'd. I have a webrev posted for tl/langtools which cleans up these tests so they will be run and not ignored. It factors the failing cases out of test 1 so it runs completely. If filters the failing cases out of test2 (too many to factor out). I recently added a couple more test cases to Combinations*2.java covering fields and methods. I had posted some at http://cr.openjdk.java.net/~ssides/tests/ (TestAnonInner*.java), but they were not posted as webrevs. :/ Last week, I incorporated them into one of the Combinations tests Friday, but it would be smoother if the aforementioned webrev were push first. -steve From steve.sides at oracle.com Mon Feb 18 11:46:04 2013 From: steve.sides at oracle.com (Steve Sides) Date: Mon, 18 Feb 2013 11:46:04 -0800 Subject: Annotations on anonymous classes In-Reply-To: <51228353.4060604@oracle.com> References: <51228353.4060604@oracle.com> Message-ID: <512284FC.2010205@oracle.com> On 2/18/2013 11:38 AM, Steve Sides wrote: > On 2/17/2013 8:50 PM, Werner Dietl wrote: >> I finished implementing the changed handling for anonymous classes, as >> described by Alex in: >> >> http://mail.openjdk.java.net/pipermail/type-annotations-spec-experts/2013-February/000063.html >> >> >> Steve/SQE: I only added one simple test to newlocations: >> http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/file/dbef4179abd8/test/tools/javac/annotations/typeAnnotations/newlocations/AnonymousClass.java >> >> >> I tested that the annotations end up in the right locations using javap. >> None of the existing test styles seemed suitable to test for >> annotations on an anonymous class. >> >> Please do expand the tests and let me know if you see any issues with >> this. >> >> cu, WMD. >> > There are some in CombinationsTargetTest1.java (case4), but they are > currently @ignore'd. > I have a webrev posted for tl/langtools which cleans up these tests so > they will be run and not ignored. > It factors the failing cases out of test 1 so it runs completely. If > filters the failing cases out of test2 (too many to factor out). > > I recently added a couple more test cases to Combinations*2.java > covering fields and methods. I should have said, if add tests cases for "fields and methods in anonymous classes". -steve > I had posted some at http://cr.openjdk.java.net/~ssides/tests/ > (TestAnonInner*.java), but they were not posted as webrevs. :/ > Last week, I incorporated them into one of the Combinations tests > Friday, but it would be smoother if the aforementioned webrev were > push first. > > -steve From wdietl at gmail.com Mon Feb 18 17:23:11 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 18 Feb 2013 17:23:11 -0800 Subject: Type annotations in static initializers Message-ID: Jon, all, I just noticed that type annotations in a static initializer block are not stored in bytecode. Take this example: class Test { static { Object o = new @TA Object(); } } Attr.visitBlock correctly attributes the annotation and in the end localEnv.info.scope.owner contains the @TA annotation. The owner.toString() gives "Test" and is of kind STATIC_INIT. However, in com.sun.tools.javac.jvm.ClassWriter.writeMethod(MethodSymbol) I later see a MethodSymbol for "()" of kind STATIC_INIT. This symbol no longer contains the type annotations and therefore nothing gets written to bytecode. Can somebody point me to the place where the MethodSymbol from Attr is re-written into the MethodSymbol that ends up in the ClassWriter? I spent some time looking through the code but didn't find this. Maybe type annotations should be copied over whenever one symbol is re-written into another one? Thanks for any hints! cu, WMD. -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Tue Feb 19 18:07:35 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 19 Feb 2013 18:07:35 -0800 Subject: Impl for javax.lang.model API Message-ID: <51242FE7.3070109@oracle.com> Werner, I have an initial impl of the new javax.lang.model API, and some initial tests. One test is failing: given an ExecutableType, the list returned by getParameterTypes is not returning parameters types with type annotations, when I think it should. In particular, a toString() of the ExecutableType does not indicate any type-annotated parameters, although it does show type annotations on the return type and thrown types. What is the best way to proceed here? Should I push the "work so far" to the type-annotations forest for you to investigate? -- Jon From jonathan.gibbons at oracle.com Tue Feb 19 20:28:43 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Tue, 19 Feb 2013 20:28:43 -0800 Subject: Impl for javax.lang.model API In-Reply-To: <51242FE7.3070109@oracle.com> References: <51242FE7.3070109@oracle.com> Message-ID: <512450FB.7070104@oracle.com> On 02/19/2013 06:07 PM, Jonathan Gibbons wrote: > Werner, > > I have an initial impl of the new javax.lang.model API, and some > initial tests. > > One test is failing: given an ExecutableType, the list returned by > getParameterTypes is not returning parameters types with type > annotations, when I think it should. In particular, a toString() of > the ExecutableType does not indicate any type-annotated parameters, > although it does show type annotations on the return type and thrown > types. > > What is the best way to proceed here? Should I push the "work so far" > to the type-annotations forest for you to investigate? > > -- Jon > > Werner, Here is some corroborative detail, using DPrinter ... The method in question is public int m1(@TA(4) float a) throws Exception { return 0; } The first section, labeled "element", is a dump of the ExecutableElement for this method. In this element, the VarSymbol for the first parameter indeed shows the annotation. See element> params> 0> type. The second section, labeled "type", is a dump of the ExecutableType of the method. The args of the type do not contain any annotations. See type > argtypes > 0. So, the question is, would you expect to see the annotations here? -- Jon element: MethodSymbol,0x10--kindname.method,METHOD m1 #14d8af3 flags: 0x1--public completer: #null owner: BasicAnnoTests type: (float)int erasure: #null params: [1] 0: VarSymbol,0x4--kindname.variable,PARAMETER a #4e276f flags: 0x200000000--parameter completer: #null owner: m1(float) type: (@BasicAnnoTests.TA(4) :: float) erasure: #null pos: 9845 adm: -1 data: #null annotations: #193563d attributes: [0] type_attributes: [1] 0: TypeCompound position: [METHOD_FORMAL_PARAMETER, param_index = 0, pos = 9839] synthesized: false values: [1] 0: Pair[value(),4] type: BasicAnnoTests.TA savedParameterNames: #null annotations: #e37ebf attributes: [1] 0: Compound synthesized: false values: [3] 0: Pair[posn(),1] 1: Pair[annoType(),BasicAnnoTests.TA.class] 2: Pair[expect(),"4"] type: BasicAnnoTests.Test type_attributes: [1] 0: TypeCompound position: [METHOD_FORMAL_PARAMETER, param_index = 0, pos = 9839] synthesized: false values: [1] 0: Pair[value(),4] type: BasicAnnoTests.TA type: MethodType,METHOD,EXECUTABLE #b96509 tsym: Method constValue: #null annotations: [0] argtypes: [1] 0: Type,FLOAT,FLOAT #15eb0cd tsym: float constValue: #null annotations: [0] restype: Type,INT,INT #f328e5 tsym: int constValue: #null annotations: [0] thrown: [1] 0: ClassType,CLASS,DECLARED #1eead82 tsym: java.lang.Exception constValue: #null annotations: [0] outer: typarams: [0] allparams: #null supertype: java.lang.Throwable interfaces: [0] allinterfaces: #null From wdietl at gmail.com Tue Feb 19 23:37:10 2013 From: wdietl at gmail.com (Werner Dietl) Date: Wed, 20 Feb 2013 00:37:10 -0700 Subject: Impl for javax.lang.model API In-Reply-To: <512450FB.7070104@oracle.com> References: <51242FE7.3070109@oracle.com> <512450FB.7070104@oracle.com> Message-ID: Hi Jon, answers inline. On Tue, Feb 19, 2013 at 8:28 PM, Jonathan Gibbons wrote: > On 02/19/2013 06:07 PM, Jonathan Gibbons wrote: >> >> Werner, >> >> I have an initial impl of the new javax.lang.model API, and some initial >> tests. >> >> One test is failing: given an ExecutableType, the list returned by >> getParameterTypes is not returning parameters types with type annotations, >> when I think it should. In particular, a toString() of the ExecutableType >> does not indicate any type-annotated parameters, although it does show type >> annotations on the return type and thrown types. >> >> What is the best way to proceed here? Should I push the "work so far" to >> the type-annotations forest for you to investigate? Yes, I think pushing to type-annotations would be good and we can iron out all problems there. This is also related to this discussion: http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-January/000535.html to which you wanted to come back to. > Here is some corroborative detail, using DPrinter ... > > The method in question is > > public int m1(@TA(4) float a) throws Exception { return 0; } > > The first section, labeled "element", is a dump of the ExecutableElement for > this method. In this element, the VarSymbol for the first parameter indeed > shows the annotation. See element> params> 0> type. > > The second section, labeled "type", is a dump of the ExecutableType of the > method. The args of the type do not contain any annotations. See type > > argtypes > 0. > > So, the question is, would you expect to see the annotations here? I would expect a type annotation @TA on both the parameter type and element, yes. Looking at: com.sun.tools.javac.code.TypeAnnotations.TypeAnnotationPositions.separateAnnotationsKinds(JCTree, Type, Symbol, TypeAnnotationPosition) you'll see: type = typeWithAnnotations(typetree, type, typeAnnotations, log); if (sym.getKind() == ElementKind.METHOD) { sym.type.asMethodType().restype = type; } else { sym.type = type; } sym.annotations.appendUniqueTypes(typeAnnotations); This constructs the annotated type and then sets it for the parameter symbol. Finally, the type annotations are attached to the symbol. You said that the annotated type shows up for the return type and elsewhere, so hopefully typeWithAnnotations does the right thing. So, maybe setting sym.type is not enough for a parameter and we also need to do something on sym.owner? E.g. note how later in that method we copy the type annotations from the parameter to the owning method. cu, WMD. > element: MethodSymbol,0x10--kindname.method,METHOD m1 #14d8af3 > flags: 0x1--public > completer: #null > owner: BasicAnnoTests > type: (float)int > erasure: #null > params: [1] > 0: VarSymbol,0x4--kindname.variable,PARAMETER a #4e276f > flags: 0x200000000--parameter > completer: #null > owner: m1(float) > type: (@BasicAnnoTests.TA(4) :: float) > erasure: #null > pos: 9845 > adm: -1 > data: #null > annotations: #193563d > attributes: [0] > type_attributes: [1] > 0: TypeCompound > position: [METHOD_FORMAL_PARAMETER, param_index = 0, pos = 9839] > synthesized: false > values: [1] > 0: Pair[value(),4] > type: BasicAnnoTests.TA > savedParameterNames: #null > annotations: #e37ebf > attributes: [1] > 0: Compound > synthesized: false > values: [3] > 0: Pair[posn(),1] > 1: Pair[annoType(),BasicAnnoTests.TA.class] > 2: Pair[expect(),"4"] > type: BasicAnnoTests.Test > type_attributes: [1] > 0: TypeCompound > position: [METHOD_FORMAL_PARAMETER, param_index = 0, pos = 9839] > synthesized: false > values: [1] > 0: Pair[value(),4] > type: BasicAnnoTests.TA > type: MethodType,METHOD,EXECUTABLE #b96509 > tsym: Method > constValue: #null > annotations: [0] > argtypes: [1] > 0: Type,FLOAT,FLOAT #15eb0cd > tsym: float > constValue: #null > annotations: [0] > restype: Type,INT,INT #f328e5 > tsym: int > constValue: #null > annotations: [0] > thrown: [1] > 0: ClassType,CLASS,DECLARED #1eead82 > tsym: java.lang.Exception > constValue: #null > annotations: [0] > outer: > typarams: [0] > allparams: #null > supertype: java.lang.Throwable > interfaces: [0] > allinterfaces: #null > -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Wed Feb 20 14:30:40 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 20 Feb 2013 14:30:40 -0800 Subject: getAnnotationsByType Message-ID: <51254E90.7040700@oracle.com> Joe, With the proposed new javax.lang.model API for type annotationns, I get compilation errors in jaxws. Is this to be expected, and do we have a plan to address this? -- Jon /w/jjg/work/type-annos/type-annotations/jaxws/src/share/jaxws_classes/com/sun/tools/internal/jxc/model/nav/ApNavigator.java:365: error: is not abstract and does not override abstract method getAnnotationsByType(Class) in AnnotatedConstruct private static final TypeMirror DUMMY = new TypeMirror() { From steve.sides at oracle.com Wed Feb 20 15:45:29 2013 From: steve.sides at oracle.com (Steve Sides) Date: Wed, 20 Feb 2013 15:45:29 -0800 Subject: type-annotations on lambda expression Message-ID: <51256019.4070708@oracle.com> Hi Werner, I saw the anonymous class changes and test request. I have a test for that and just need to double check it (formatting mostly) and make a webev. On another front, can I get a date estimate from you for the lambda expression support? I think I keep asking that. :) I have a tentative test but would like to try an implementation. Currently, I think I'm seeing type-annotations only on method references. thanks, steve From alex.buckley at oracle.com Wed Feb 20 16:16:48 2013 From: alex.buckley at oracle.com (Alex Buckley) Date: Wed, 20 Feb 2013 16:16:48 -0800 Subject: Heads-up: Type Annotations in JDK8 M7 Message-ID: <51256770.60004@oracle.com> Please see today's message from jdk8-dev: http://mail.openjdk.java.net/pipermail/jdk8-dev/2013-February/002066.html. Alex From joe.darcy at oracle.com Wed Feb 20 16:24:50 2013 From: joe.darcy at oracle.com (Joe Darcy) Date: Wed, 20 Feb 2013 16:24:50 -0800 Subject: getAnnotationsByType In-Reply-To: <51254E90.7040700@oracle.com> References: <51254E90.7040700@oracle.com> Message-ID: <51256952.1090903@oracle.com> Hi Jon, On 2/20/2013 2:30 PM, Jonathan Gibbons wrote: > Joe, > > With the proposed new javax.lang.model API for type annotationns, I > get compilation errors in jaxws. > > Is this to be expected, and do we have a plan to address this? I suppose this is to be expected since we are in effect adding several annotation-reading methods to the TypeMirror interface that this nominal implementation in jaxws doesn't have. As a stop-gap measure to get the build going, we can make the methods in AnnotatedConstruct be default methods, but once we know what API we want, we should have the jax-ws team implement those methods in this marker object and then revert the default methods to normal one. (As a matter of policy, we cannot use default methods in javax.lang.model since the API has to be runnable on Java SE 7/JDK 7. [1]) As an aside, should the need arise I'll note that by using annotation processors it is possible to generate a compile-time JDK-version-specific source for an implementation of an interface. Cheers, -Joe [1] http://hg.openjdk.java.net/jdk8/tl/langtools/rev/09f65aad4759 > > -- Jon > > /w/jjg/work/type-annos/type-annotations/jaxws/src/share/jaxws_classes/com/sun/tools/internal/jxc/model/nav/ApNavigator.java:365: > error: > is not abstract and does not override abstract method > getAnnotationsByType(Class) in AnnotatedConstruct > private static final TypeMirror DUMMY = new TypeMirror() { > From alex.buckley at oracle.com Wed Feb 20 16:29:38 2013 From: alex.buckley at oracle.com (Alex Buckley) Date: Wed, 20 Feb 2013 16:29:38 -0800 Subject: getAnnotationsByType In-Reply-To: <51256952.1090903@oracle.com> References: <51254E90.7040700@oracle.com> <51256952.1090903@oracle.com> Message-ID: <51256A72.5040506@oracle.com> Joe, On 2/20/2013 4:24 PM, Joe Darcy wrote: > As a stop-gap measure to get the build going, we can make the methods in > AnnotatedConstruct be default methods, but once we know what API we > want, we should have the jax-ws team implement those methods in this > marker object and then revert the default methods to normal one. (As a > matter of policy, we cannot use default methods in javax.lang.model > since the API has to be runnable on Java SE 7/JDK 7. [1]) Who is responsible on the JAXWS team for delivering code into a jaxws repo? In which forest do they usually touch the jaxws repo? Alex From jonathan.gibbons at oracle.com Wed Feb 20 17:12:00 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 20 Feb 2013 17:12:00 -0800 Subject: getAnnotationsByType In-Reply-To: <51256952.1090903@oracle.com> References: <51254E90.7040700@oracle.com> <51256952.1090903@oracle.com> Message-ID: <51257460.1010304@oracle.com> We cannot make the methods be default methods in the short term because of the JDK bootstrap requirements. -- Jon On 02/20/2013 04:24 PM, Joe Darcy wrote: > Hi Jon, > > On 2/20/2013 2:30 PM, Jonathan Gibbons wrote: >> Joe, >> >> With the proposed new javax.lang.model API for type annotationns, I >> get compilation errors in jaxws. >> >> Is this to be expected, and do we have a plan to address this? > > I suppose this is to be expected since we are in effect adding several > annotation-reading methods to the TypeMirror interface that this > nominal implementation in jaxws doesn't have. > > As a stop-gap measure to get the build going, we can make the methods > in AnnotatedConstruct be default methods, but once we know what API we > want, we should have the jax-ws team implement those methods in this > marker object and then revert the default methods to normal one. (As a > matter of policy, we cannot use default methods in javax.lang.model > since the API has to be runnable on Java SE 7/JDK 7. [1]) > > As an aside, should the need arise I'll note that by using annotation > processors it is possible to generate a compile-time > JDK-version-specific source for an implementation of an interface. > > Cheers, > > -Joe > > [1] http://hg.openjdk.java.net/jdk8/tl/langtools/rev/09f65aad4759 > > >> >> -- Jon >> >> /w/jjg/work/type-annos/type-annotations/jaxws/src/share/jaxws_classes/com/sun/tools/internal/jxc/model/nav/ApNavigator.java:365: >> error: >> is not abstract and does not override abstract method >> getAnnotationsByType(Class) in AnnotatedConstruct >> private static final TypeMirror DUMMY = new TypeMirror() { >> > From jonathan.gibbons at oracle.com Wed Feb 20 18:30:59 2013 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Thu, 21 Feb 2013 02:30:59 +0000 Subject: hg: type-annotations/type-annotations/jaxws: Interim fix to work around new javax.lang.model API Message-ID: <20130221023104.329D247C2B@hg.openjdk.java.net> Changeset: ac5f0286809d Author: jjg Date: 2013-02-20 18:30 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/ac5f0286809d Interim fix to work around new javax.lang.model API ! src/share/jaxws_classes/com/sun/tools/internal/jxc/model/nav/ApNavigator.java From jonathan.gibbons at oracle.com Wed Feb 20 18:31:46 2013 From: jonathan.gibbons at oracle.com (jonathan.gibbons at oracle.com) Date: Thu, 21 Feb 2013 02:31:46 +0000 Subject: hg: type-annotations/type-annotations/langtools: Initial support for new javax.lang.model API Message-ID: <20130221023152.786F147C2C@hg.openjdk.java.net> Changeset: 18c5660c7e99 Author: jjg Date: 2013-02-20 18:31 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/18c5660c7e99 Initial support for new javax.lang.model API ! 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/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/model/AnnotationProxyMaker.java + src/share/classes/com/sun/tools/javac/model/JavacAnnoConstructs.java ! src/share/classes/com/sun/tools/javac/model/JavacElements.java ! src/share/classes/com/sun/tools/javac/model/JavacTypes.java ! src/share/classes/com/sun/tools/javadoc/ExecutableMemberDocImpl.java ! src/share/classes/com/sun/tools/javadoc/TypeMaker.java ! src/share/classes/com/sun/tools/javadoc/TypeVariableImpl.java + src/share/classes/javax/lang/model/AnnotatedConstruct.java ! src/share/classes/javax/lang/model/element/Element.java ! src/share/classes/javax/lang/model/element/ExecutableElement.java - src/share/classes/javax/lang/model/type/AnnotatedType.java ! src/share/classes/javax/lang/model/type/ExecutableType.java ! src/share/classes/javax/lang/model/type/TypeKind.java ! src/share/classes/javax/lang/model/type/TypeMirror.java ! src/share/classes/javax/lang/model/type/TypeVisitor.java ! src/share/classes/javax/lang/model/util/AbstractTypeVisitor6.java ! src/share/classes/javax/lang/model/util/Types.java ! test/tools/javac/lib/DPrinter.java + test/tools/javac/processing/model/type/BasicAnnoTests.java From jonathan.gibbons at oracle.com Wed Feb 20 18:55:10 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 20 Feb 2013 18:55:10 -0800 Subject: Impl for javax.lang.model API In-Reply-To: References: <51242FE7.3070109@oracle.com> <512450FB.7070104@oracle.com> Message-ID: <51258C8E.9010706@oracle.com> I've pushed my initial impl for the new javax.lang.model API, and the "work so far" on the test I was writing to verify the API. The doc comments on the API are taken from Joe's recent patch, and may need revision as needed. The impl is relatively obvious, although the new code in JavacAnnoConstructs can be cleaned up somewhat, by sharing more code between the Type and Symbol cases. The test is as far as I got before uncovering the issue described earlier. The infrastructure for the test is overly general (for now) but is intended to support more complex test cases involving repeated annotations. I think it would be instructive to look at those types that you can get at via multiple paths to verify whether they are equivalent (same type and annotations). In particular, for an ExecutableElement you can get at a bunch of interesting types directly, or you can get at them via the corresponding ExecutableType. Likewise, for a TypeElement, you can get at the type mirrors of the type parameters, or you can get to the type args via the DeclaredType and getTypeArguments. I've pushed this as a single changeset to type-annotations. When we come to push this to TL, I will push it in two parts -- removing the old API, and then adding the new API. That will make the internal paperwork a bit easier. Also note that we've (indirectly) added methods to TypeMirror, which has broken code in the jaxws repo. In an ideal world, we would be able to use default methods to solve this problem, but we are not there yet. The interim solution, for now, is that I have pushed a fixup to the jaxws repo. -- Jon On 02/19/2013 11:37 PM, Werner Dietl wrote: > Hi Jon, > > answers inline. > > > On Tue, Feb 19, 2013 at 8:28 PM, Jonathan Gibbons > wrote: >> On 02/19/2013 06:07 PM, Jonathan Gibbons wrote: >>> Werner, >>> >>> I have an initial impl of the new javax.lang.model API, and some initial >>> tests. >>> >>> One test is failing: given an ExecutableType, the list returned by >>> getParameterTypes is not returning parameters types with type annotations, >>> when I think it should. In particular, a toString() of the ExecutableType >>> does not indicate any type-annotated parameters, although it does show type >>> annotations on the return type and thrown types. >>> >>> What is the best way to proceed here? Should I push the "work so far" to >>> the type-annotations forest for you to investigate? > Yes, I think pushing to type-annotations would be good and we can iron > out all problems there. > > This is also related to this discussion: > > http://mail.openjdk.java.net/pipermail/type-annotations-dev/2013-January/000535.html > > to which you wanted to come back to. > > >> Here is some corroborative detail, using DPrinter ... >> >> The method in question is >> >> public int m1(@TA(4) float a) throws Exception { return 0; } >> >> The first section, labeled "element", is a dump of the ExecutableElement for >> this method. In this element, the VarSymbol for the first parameter indeed >> shows the annotation. See element> params> 0> type. >> >> The second section, labeled "type", is a dump of the ExecutableType of the >> method. The args of the type do not contain any annotations. See type > >> argtypes > 0. >> >> So, the question is, would you expect to see the annotations here? > I would expect a type annotation @TA on both the parameter type and > element, yes. > > Looking at: > > com.sun.tools.javac.code.TypeAnnotations.TypeAnnotationPositions.separateAnnotationsKinds(JCTree, > Type, Symbol, TypeAnnotationPosition) > > you'll see: > > type = typeWithAnnotations(typetree, type, typeAnnotations, log); > > if (sym.getKind() == ElementKind.METHOD) { > sym.type.asMethodType().restype = type; > } else { > sym.type = type; > } > > sym.annotations.appendUniqueTypes(typeAnnotations); > > This constructs the annotated type and then sets it for the parameter symbol. > Finally, the type annotations are attached to the symbol. > > You said that the annotated type shows up for the return type and > elsewhere, so hopefully typeWithAnnotations does the right thing. > So, maybe setting sym.type is not enough for a parameter and we also > need to do something on sym.owner? > E.g. note how later in that method we copy the type annotations from > the parameter to the owning method. > > cu, WMD. > > > > >> element: MethodSymbol,0x10--kindname.method,METHOD m1 #14d8af3 >> flags: 0x1--public >> completer: #null >> owner: BasicAnnoTests >> type: (float)int >> erasure: #null >> params: [1] >> 0: VarSymbol,0x4--kindname.variable,PARAMETER a #4e276f >> flags: 0x200000000--parameter >> completer: #null >> owner: m1(float) >> type: (@BasicAnnoTests.TA(4) :: float) >> erasure: #null >> pos: 9845 >> adm: -1 >> data: #null >> annotations: #193563d >> attributes: [0] >> type_attributes: [1] >> 0: TypeCompound >> position: [METHOD_FORMAL_PARAMETER, param_index = 0, pos = 9839] >> synthesized: false >> values: [1] >> 0: Pair[value(),4] >> type: BasicAnnoTests.TA >> savedParameterNames: #null >> annotations: #e37ebf >> attributes: [1] >> 0: Compound >> synthesized: false >> values: [3] >> 0: Pair[posn(),1] >> 1: Pair[annoType(),BasicAnnoTests.TA.class] >> 2: Pair[expect(),"4"] >> type: BasicAnnoTests.Test >> type_attributes: [1] >> 0: TypeCompound >> position: [METHOD_FORMAL_PARAMETER, param_index = 0, pos = 9839] >> synthesized: false >> values: [1] >> 0: Pair[value(),4] >> type: BasicAnnoTests.TA >> type: MethodType,METHOD,EXECUTABLE #b96509 >> tsym: Method >> constValue: #null >> annotations: [0] >> argtypes: [1] >> 0: Type,FLOAT,FLOAT #15eb0cd >> tsym: float >> constValue: #null >> annotations: [0] >> restype: Type,INT,INT #f328e5 >> tsym: int >> constValue: #null >> annotations: [0] >> thrown: [1] >> 0: ClassType,CLASS,DECLARED #1eead82 >> tsym: java.lang.Exception >> constValue: #null >> annotations: [0] >> outer: >> typarams: [0] >> allparams: #null >> supertype: java.lang.Throwable >> interfaces: [0] >> allinterfaces: #null >> > > From jonathan.gibbons at oracle.com Wed Feb 20 18:59:45 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Wed, 20 Feb 2013 18:59:45 -0800 Subject: Type annotations in static initializers In-Reply-To: References: Message-ID: <51258DA1.5090809@oracle.com> On 02/18/2013 05:23 PM, Werner Dietl wrote: > Jon, all, > > I just noticed that type annotations in a static initializer block are > not stored in bytecode. > Take this example: > > class Test { > static { > Object o = new @TA Object(); > } > } > > Attr.visitBlock correctly attributes the annotation and in the end > localEnv.info.scope.owner contains the @TA annotation. > The owner.toString() gives "Test" and is of kind STATIC_INIT. > > However, in com.sun.tools.javac.jvm.ClassWriter.writeMethod(MethodSymbol) > I later see a MethodSymbol for "()" of kind STATIC_INIT. > This symbol no longer contains the type annotations and therefore > nothing gets written to bytecode. > > Can somebody point me to the place where the MethodSymbol from Attr is > re-written into the MethodSymbol that ends up in the ClassWriter? > I spent some time looking through the code but didn't find this. > Maybe type annotations should be copied over whenever one symbol is > re-written into another one? > > Thanks for any hints! > cu, WMD. > In general, this sort of work is done in Lower. However, in this case, a search on Names.clinit shows nothing there. But in Gen, you can find this code: // If there are class initializers, create a method // that contains them as its body. if (clinitCode.length() != 0) { MethodSymbol clinit = new MethodSymbol( STATIC | (c.flags() & STRICTFP), names.clinit, new MethodType( List.nil(), syms.voidType, List.nil(), syms.methodClass), c); c.members().enter(clinit); List clinitStats = clinitCode.toList(); JCBlock block = make.at(clinitStats.head.pos()).Block(0, clinitStats); block.endpos = TreeInfo.endPos(clinitStats.last()); methodDefs.append(make.MethodDef(clinit, block)); } -- Jon From wdietl at gmail.com Wed Feb 20 23:57:53 2013 From: wdietl at gmail.com (Werner Dietl) Date: Thu, 21 Feb 2013 00:57:53 -0700 Subject: Type annotations in static initializers In-Reply-To: <51258DA1.5090809@oracle.com> References: <51258DA1.5090809@oracle.com> Message-ID: Thanks for this pointer, Jon. Method javac.jvm.Gen.normalizeDefs indeed seems relevant, as it contains initCode and clinitCode for instance and class initializers - for both of which I want to store the type annotations. However, I cannot find the MethodSymbol that I saw at Attr. [cl]initCode is just a List of JCStatement and I couldn't find how to get to the MethodSymbol that I previously saw in Attr. Any more hints? Something very obvious I'm missing? Also, to make sure we see the translation equally (Alex, please chime in if the spec says more on this): class Test { Object f = new @TA Object(); } Partial output of javap -v is: java.lang.Object f; descriptor: Ljava/lang/Object; flags: RuntimeInvisibleTypeAnnotations: 0: #8(): NEW, offset=5 Test(); descriptor: ()V flags: Code: stack=3, locals=2, args_size=1 0: aload_0 1: invokespecial #1 // Method java/lang/Object."":()V 4: aload_0 5: new #2 // class java/lang/Object 8: dup 9: invokespecial #1 // Method java/lang/Object."":()V 12: putfield #3 // Field f:Ljava/lang/Object; So the NEW is stored with the field and at the correct offset for the "new" instruction. I looked at this with multiple constructors and, also considering the logic of normalizeDefs, this should be correct - all constructors will be generated with the same prefix for field initializers and the bytecode offset is valid. However, if a constructor calls a "this" constructor, as in: class Test { Object f = new @TA Object(); Test() {} Test(int x) { this(); } } This code still attaches @TA to field "f" with offset 5. However, now this offset is only valid in the first constructor, not in the second, which is: Test(int); descriptor: (I)V flags: Code: stack=1, locals=2, args_size=2 0: aload_0 1: invokespecial #4 // Method "":()V 4: return Is this the intended logic, i.e. should type annotations on fields give the offset to the "initial constructors" (which is a term I found in Gen - I'm not sure whether there is a JLS term for this)? Or is this not the intended behavior? For instance initializers, all type annotations from their bodies should appear on all initial constructors. And for class initializers, all type annotations from their bodies should appear on the clinit symbol. Does all of this sound correct? Thanks, cu, WMD. On Wed, Feb 20, 2013 at 7:59 PM, Jonathan Gibbons wrote: > On 02/18/2013 05:23 PM, Werner Dietl wrote: >> >> Jon, all, >> >> I just noticed that type annotations in a static initializer block are >> not stored in bytecode. >> Take this example: >> >> class Test { >> static { >> Object o = new @TA Object(); >> } >> } >> >> Attr.visitBlock correctly attributes the annotation and in the end >> localEnv.info.scope.owner contains the @TA annotation. >> The owner.toString() gives "Test" and is of kind STATIC_INIT. >> >> However, in com.sun.tools.javac.jvm.ClassWriter.writeMethod(MethodSymbol) >> I later see a MethodSymbol for "()" of kind STATIC_INIT. >> This symbol no longer contains the type annotations and therefore >> nothing gets written to bytecode. >> >> Can somebody point me to the place where the MethodSymbol from Attr is >> re-written into the MethodSymbol that ends up in the ClassWriter? >> I spent some time looking through the code but didn't find this. >> Maybe type annotations should be copied over whenever one symbol is >> re-written into another one? >> >> Thanks for any hints! >> cu, WMD. >> > > In general, this sort of work is done in Lower. However, in this case, > a search on Names.clinit shows nothing there. But in Gen, you can find > this code: > > // If there are class initializers, create a method > // that contains them as its body. > if (clinitCode.length() != 0) { > MethodSymbol clinit = new MethodSymbol( > STATIC | (c.flags() & STRICTFP), > names.clinit, > new MethodType( > List.nil(), syms.voidType, > List.nil(), syms.methodClass), > c); > c.members().enter(clinit); > List clinitStats = clinitCode.toList(); > JCBlock block = make.at(clinitStats.head.pos()).Block(0, > clinitStats); > block.endpos = TreeInfo.endPos(clinitStats.last()); > methodDefs.append(make.MethodDef(clinit, block)); > } > > -- Jon -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Thu Feb 21 09:43:35 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Thu, 21 Feb 2013 09:43:35 -0800 Subject: Type annotations in static initializers In-Reply-To: References: <51258DA1.5090809@oracle.com> Message-ID: <51265CC7.2040006@oracle.com> On 02/20/2013 11:57 PM, Werner Dietl wrote: > Thanks for this pointer, Jon. > > Method javac.jvm.Gen.normalizeDefs indeed seems relevant, as it > contains initCode and clinitCode for instance and class initializers - > for both of which I want to store the type annotations. > However, I cannot find the MethodSymbol that I saw at Attr. > [cl]initCode is just a List of JCStatement and I couldn't find how to > get to the MethodSymbol that I previously saw in Attr. > > Any more hints? Something very obvious I'm missing? System.err.println, and now DPrinter is your friend. Can you trace where all symbols are being created? -- Jon From alex.buckley at oracle.com Thu Feb 21 15:19:35 2013 From: alex.buckley at oracle.com (Alex Buckley) Date: Thu, 21 Feb 2013 15:19:35 -0800 Subject: Type annotations in static initializers In-Reply-To: References: <51258DA1.5090809@oracle.com> Message-ID: <5126AB87.9020607@oracle.com> An annotation on a field declaration was traditionally stored as an attribute of the field_info structure. The JSR 308 spec reuses that behavior for an annotation on a field type. But this is moot because the Test class has no annotations on the declaration or type of field f. The Test class has an annotation on a type in an expression. Then, the germane line from the 308 spec is: "A type annotation is stored in a Runtime[In]visibleTypeAnnotations attribute on the smallest enclosing class, field, method, or Code structure." So @TA must be stored as a target_type==NEW attribute in the Code attribute of the class file's method which implements the instance variable initializer for f. If you do that, there is no question over the offset value in Runtime[In]VisibleTypeAnnotations. The fact that multiple methods exist is not important, because they will all ultimately cause the instance variable initializer code for f to be run (JLS 12.5). Alex On 2/20/2013 11:57 PM, Werner Dietl wrote: > Also, to make sure we see the translation equally (Alex, please chime > in if the spec says more on this): > > class Test { > Object f = new @TA Object(); > } > > Partial output of javap -v is: > > java.lang.Object f; > descriptor: Ljava/lang/Object; > flags: > RuntimeInvisibleTypeAnnotations: > 0: #8(): NEW, offset=5 > > Test(); > descriptor: ()V > flags: > Code: > stack=3, locals=2, args_size=1 > 0: aload_0 > 1: invokespecial #1 // Method > java/lang/Object."":()V > 4: aload_0 > 5: new #2 // class java/lang/Object > 8: dup > 9: invokespecial #1 // Method > java/lang/Object."":()V > 12: putfield #3 // Field f:Ljava/lang/Object; > > So the NEW is stored with the field and at the correct offset for the > "new" instruction. > I looked at this with multiple constructors and, also considering the > logic of normalizeDefs, this should be correct - all constructors will > be generated with the same prefix for field initializers and the > bytecode offset is valid. > > However, if a constructor calls a "this" constructor, as in: > > class Test { > Object f = new @TA Object(); > > Test() {} > Test(int x) { this(); } > } > > This code still attaches @TA to field "f" with offset 5. However, now > this offset is only valid in the first constructor, not in the second, > which is: > > Test(int); > descriptor: (I)V > flags: > Code: > stack=1, locals=2, args_size=2 > 0: aload_0 > 1: invokespecial #4 // Method "":()V > 4: return > > Is this the intended logic, i.e. should type annotations on fields > give the offset to the "initial constructors" (which is a term I found > in Gen - I'm not sure whether there is a JLS term for this)? > Or is this not the intended behavior? > > For instance initializers, all type annotations from their bodies > should appear on all initial constructors. > > And for class initializers, all type annotations from their bodies > should appear on the clinit symbol. > > Does all of this sound correct? > > Thanks, > cu, WMD. > > > On Wed, Feb 20, 2013 at 7:59 PM, Jonathan Gibbons > wrote: >> On 02/18/2013 05:23 PM, Werner Dietl wrote: >>> >>> Jon, all, >>> >>> I just noticed that type annotations in a static initializer block are >>> not stored in bytecode. >>> Take this example: >>> >>> class Test { >>> static { >>> Object o = new @TA Object(); >>> } >>> } >>> >>> Attr.visitBlock correctly attributes the annotation and in the end >>> localEnv.info.scope.owner contains the @TA annotation. >>> The owner.toString() gives "Test" and is of kind STATIC_INIT. >>> >>> However, in com.sun.tools.javac.jvm.ClassWriter.writeMethod(MethodSymbol) >>> I later see a MethodSymbol for "()" of kind STATIC_INIT. >>> This symbol no longer contains the type annotations and therefore >>> nothing gets written to bytecode. >>> >>> Can somebody point me to the place where the MethodSymbol from Attr is >>> re-written into the MethodSymbol that ends up in the ClassWriter? >>> I spent some time looking through the code but didn't find this. >>> Maybe type annotations should be copied over whenever one symbol is >>> re-written into another one? >>> >>> Thanks for any hints! >>> cu, WMD. >>> >> >> In general, this sort of work is done in Lower. However, in this case, >> a search on Names.clinit shows nothing there. But in Gen, you can find >> this code: >> >> // If there are class initializers, create a method >> // that contains them as its body. >> if (clinitCode.length() != 0) { >> MethodSymbol clinit = new MethodSymbol( >> STATIC | (c.flags() & STRICTFP), >> names.clinit, >> new MethodType( >> List.nil(), syms.voidType, >> List.nil(), syms.methodClass), >> c); >> c.members().enter(clinit); >> List clinitStats = clinitCode.toList(); >> JCBlock block = make.at(clinitStats.head.pos()).Block(0, >> clinitStats); >> block.endpos = TreeInfo.endPos(clinitStats.last()); >> methodDefs.append(make.MethodDef(clinit, block)); >> } >> >> -- Jon > > > From wdietl at gmail.com Thu Feb 21 17:58:00 2013 From: wdietl at gmail.com (Werner Dietl) Date: Thu, 21 Feb 2013 18:58:00 -0700 Subject: Type annotations in static initializers In-Reply-To: <5126AB87.9020607@oracle.com> References: <51258DA1.5090809@oracle.com> <5126AB87.9020607@oracle.com> Message-ID: Thanks for that clarification, Alex! The current implementation takes the "smallest enclosing class, field, method, or Code structure" part to apply to the source level and then puts annotations from the initializer on the field. I agree that this behavior should be changed and will do it together with init/clinit re-shuffling. Steve/SQE, please think about how to test for correct behavior. It would be great if you could make failing test cases for this that I will then work on fixing. Thanks, cu, WMD. On Thu, Feb 21, 2013 at 4:19 PM, Alex Buckley wrote: > An annotation on a field declaration was traditionally stored as an > attribute of the field_info structure. The JSR 308 spec reuses that behavior > for an annotation on a field type. > > But this is moot because the Test class has no annotations on the > declaration or type of field f. The Test class has an annotation on a type > in an expression. Then, the germane line from the 308 spec is: > > "A type annotation is stored in a Runtime[In]visibleTypeAnnotations > attribute on the smallest enclosing class, field, method, or Code > structure." > > So @TA must be stored as a target_type==NEW attribute in the Code attribute > of the class file's method which implements the instance variable > initializer for f. > > If you do that, there is no question over the offset value in > Runtime[In]VisibleTypeAnnotations. The fact that multiple methods > exist is not important, because they will all ultimately cause the instance > variable initializer code for f to be run (JLS 12.5). > > Alex > > > On 2/20/2013 11:57 PM, Werner Dietl wrote: >> >> Also, to make sure we see the translation equally (Alex, please chime >> in if the spec says more on this): >> >> class Test { >> Object f = new @TA Object(); >> } >> >> Partial output of javap -v is: >> >> java.lang.Object f; >> descriptor: Ljava/lang/Object; >> flags: >> RuntimeInvisibleTypeAnnotations: >> 0: #8(): NEW, offset=5 >> >> Test(); >> descriptor: ()V >> flags: >> Code: >> stack=3, locals=2, args_size=1 >> 0: aload_0 >> 1: invokespecial #1 // Method >> java/lang/Object."":()V >> 4: aload_0 >> 5: new #2 // class java/lang/Object >> 8: dup >> 9: invokespecial #1 // Method >> java/lang/Object."":()V >> 12: putfield #3 // Field >> f:Ljava/lang/Object; >> >> So the NEW is stored with the field and at the correct offset for the >> "new" instruction. >> I looked at this with multiple constructors and, also considering the >> logic of normalizeDefs, this should be correct - all constructors will >> be generated with the same prefix for field initializers and the >> bytecode offset is valid. >> >> However, if a constructor calls a "this" constructor, as in: >> >> class Test { >> Object f = new @TA Object(); >> >> Test() {} >> Test(int x) { this(); } >> } >> >> This code still attaches @TA to field "f" with offset 5. However, now >> this offset is only valid in the first constructor, not in the second, >> which is: >> >> Test(int); >> descriptor: (I)V >> flags: >> Code: >> stack=1, locals=2, args_size=2 >> 0: aload_0 >> 1: invokespecial #4 // Method "":()V >> 4: return >> >> Is this the intended logic, i.e. should type annotations on fields >> give the offset to the "initial constructors" (which is a term I found >> in Gen - I'm not sure whether there is a JLS term for this)? >> Or is this not the intended behavior? >> >> For instance initializers, all type annotations from their bodies >> should appear on all initial constructors. >> >> And for class initializers, all type annotations from their bodies >> should appear on the clinit symbol. >> >> Does all of this sound correct? >> >> Thanks, >> cu, WMD. >> >> >> On Wed, Feb 20, 2013 at 7:59 PM, Jonathan Gibbons >> wrote: >>> >>> On 02/18/2013 05:23 PM, Werner Dietl wrote: >>>> >>>> >>>> Jon, all, >>>> >>>> I just noticed that type annotations in a static initializer block are >>>> not stored in bytecode. >>>> Take this example: >>>> >>>> class Test { >>>> static { >>>> Object o = new @TA Object(); >>>> } >>>> } >>>> >>>> Attr.visitBlock correctly attributes the annotation and in the end >>>> localEnv.info.scope.owner contains the @TA annotation. >>>> The owner.toString() gives "Test" and is of kind STATIC_INIT. >>>> >>>> However, in >>>> com.sun.tools.javac.jvm.ClassWriter.writeMethod(MethodSymbol) >>>> I later see a MethodSymbol for "()" of kind STATIC_INIT. >>>> This symbol no longer contains the type annotations and therefore >>>> nothing gets written to bytecode. >>>> >>>> Can somebody point me to the place where the MethodSymbol from Attr is >>>> re-written into the MethodSymbol that ends up in the ClassWriter? >>>> I spent some time looking through the code but didn't find this. >>>> Maybe type annotations should be copied over whenever one symbol is >>>> re-written into another one? >>>> >>>> Thanks for any hints! >>>> cu, WMD. >>>> >>> >>> In general, this sort of work is done in Lower. However, in this case, >>> a search on Names.clinit shows nothing there. But in Gen, you can find >>> this code: >>> >>> // If there are class initializers, create a method >>> // that contains them as its body. >>> if (clinitCode.length() != 0) { >>> MethodSymbol clinit = new MethodSymbol( >>> STATIC | (c.flags() & STRICTFP), >>> names.clinit, >>> new MethodType( >>> List.nil(), syms.voidType, >>> List.nil(), syms.methodClass), >>> c); >>> c.members().enter(clinit); >>> List clinitStats = clinitCode.toList(); >>> JCBlock block = make.at(clinitStats.head.pos()).Block(0, >>> clinitStats); >>> block.endpos = TreeInfo.endPos(clinitStats.last()); >>> methodDefs.append(make.MethodDef(clinit, block)); >>> } >>> >>> -- Jon >> >> >> >> > -- http://www.google.com/profiles/wdietl From steve.sides at oracle.com Fri Feb 22 18:07:22 2013 From: steve.sides at oracle.com (Steve Sides) Date: Fri, 22 Feb 2013 18:07:22 -0800 Subject: some new bugs Message-ID: <5128245A.8040701@oracle.com> Hi Werner, I have been looking at type-annotations in anonymous and inner classes. I have a few new bugs. They are showing yet in bugs.sun.com, but they should by tomorrow(?). Only the first one is a jtreg test. The other 2 are part of a larger test with some classfile checking, but I put the sample code here so you can javac,javap it. -steve 8008751 - Type Annotation on array level in nested class of anonymous class results in NPE at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792) 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /* * @test * @summary type-annotation on array level in nested class results in NPE * @bug 8008751 */ import java.lang.annotation.*; import static java.lang.annotation.RetentionPolicy.*; import static java.lang.annotation.ElementType.*; import java.util.List; class T8008751 { Object mtest( T8008751 t){ return null; } Object mmtest( T8008751 t){ return null; } public void test() { mtest( new T8008751() { class InnerAnon { @A("ok") String s = (@A("ok") String)( new @A("ok") Object()); @A("ok") Object @A("NPE")[] [] ia_sa1 = null; } // If not instanciated, no crash. InnerAnon IA = new InnerAnon(); }); } } @Retention(RUNTIME) @Target(TYPE_USE) @interface A { String value(); } 8008762 - Type annotation on inner class in anonymous class show up as regular type annotations 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - import java.lang.annotation.*; import static java.lang.annotation.RetentionPolicy.*; import static java.lang.annotation.ElementType.*; class Test1 { // Test1.class @A @B String data = "test"; @A @B String m(){ return null; }; Object mtest( Test1 t){ return null; } public void test() { mtest( new Test1() { // Test1$1.class @A @B String a_data = "test"; @A @B String a_m(){ return null; }; class InnerAnon { // Test1$1$InnerAnon.class @A @B String ai_data = "test"; @A @B String ai_m(){ return null; }; } InnerAnon IA = new InnerAnon(); }); } } @Retention(RUNTIME) @Target(TYPE_USE) @interface A { } @Retention(CLASS) @Target(TYPE_USE) @interface B { } 8008769 - Repeated type-annotations on type parameter of local variable are not written to classfile. 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - import java.lang.annotation.*; import static java.lang.annotation.RetentionPolicy.*; import static java.lang.annotation.ElementType.*; class Test { Test<@A @A @A String> t = new Test<>(); //ok public void test() { Test<@B String> t1 = new Test<>(); //ok Test<@A @A @A String> t2 = new Test<>(); //not ok } } @Target(TYPE_USE) @Repeatable( AC.class ) @interface A { } @Target(TYPE_USE) @interface AC { A[] value(); } @Target(TYPE_USE) @Repeatable( BC.class ) @interface B { } @Target(TYPE_USE) @interface BC { B[] value(); } From wdietl at gmail.com Fri Feb 22 18:09:32 2013 From: wdietl at gmail.com (Werner Dietl) Date: Fri, 22 Feb 2013 18:09:32 -0800 Subject: some new bugs In-Reply-To: <5128245A.8040701@oracle.com> References: <5128245A.8040701@oracle.com> Message-ID: Thanks for these tests! I'll work on fixing them in the type-annotations repository ASAP. cu, WMD. On Fri, Feb 22, 2013 at 6:07 PM, Steve Sides wrote: > Hi Werner, > I have been looking at type-annotations in anonymous and inner classes. > I have a few new bugs. They are showing yet in bugs.sun.com, but they should > by tomorrow(?). > Only the first one is a jtreg test. The other 2 are part of a larger test > with some classfile checking, but I > put the sample code here so you can javac,javap it. > > -steve > > 8008751 - Type Annotation on array level in nested class of anonymous class > results in NPE at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792) > 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - - > /* > * @test > * @summary type-annotation on array level in nested class results in NPE > * @bug 8008751 > */ > import java.lang.annotation.*; > import static java.lang.annotation.RetentionPolicy.*; > import static java.lang.annotation.ElementType.*; > import java.util.List; > > class T8008751 { > Object mtest( T8008751 t){ return null; } > Object mmtest( T8008751 t){ return null; } > public void test() { > mtest( new T8008751() { > class InnerAnon { > @A("ok") String s = (@A("ok") String)( new @A("ok") > Object()); > @A("ok") Object @A("NPE")[] [] ia_sa1 = null; > } > // If not instanciated, no crash. > InnerAnon IA = new InnerAnon(); > }); > } > } > @Retention(RUNTIME) @Target(TYPE_USE) @interface A { String value(); } > > > 8008762 - Type annotation on inner class in anonymous class show up as > regular type annotations > 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - - > import java.lang.annotation.*; > import static java.lang.annotation.RetentionPolicy.*; > import static java.lang.annotation.ElementType.*; > > class Test1 { // Test1.class > @A @B String data = "test"; > @A @B String m(){ return null; }; > Object mtest( Test1 t){ return null; } > public void test() { > mtest( new Test1() { // Test1$1.class > @A @B String a_data = "test"; > @A @B String a_m(){ return null; }; > class InnerAnon { // Test1$1$InnerAnon.class > @A @B String ai_data = "test"; > @A @B String ai_m(){ return null; }; > } > InnerAnon IA = new InnerAnon(); > }); > } > } > > @Retention(RUNTIME) @Target(TYPE_USE) @interface A { } > @Retention(CLASS) @Target(TYPE_USE) @interface B { } > > > 8008769 - Repeated type-annotations on type parameter of local variable are > not written to classfile. > 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - - > import java.lang.annotation.*; > import static java.lang.annotation.RetentionPolicy.*; > import static java.lang.annotation.ElementType.*; > > class Test { > Test<@A @A @A String> t = new Test<>(); //ok > > public void test() { > Test<@B String> t1 = new Test<>(); //ok > Test<@A @A @A String> t2 = new Test<>(); //not ok > } > } > > @Target(TYPE_USE) @Repeatable( AC.class ) @interface A { } > @Target(TYPE_USE) @interface AC { A[] value(); } > @Target(TYPE_USE) @Repeatable( BC.class ) @interface B { } > @Target(TYPE_USE) @interface BC { B[] value(); } > > -- http://www.google.com/profiles/wdietl From steve.sides at oracle.com Fri Feb 22 18:14:27 2013 From: steve.sides at oracle.com (Steve Sides) Date: Fri, 22 Feb 2013 18:14:27 -0800 Subject: some new bugs In-Reply-To: References: <5128245A.8040701@oracle.com> Message-ID: <51282603.1080202@oracle.com> yep. I had entered an earlier one, 8008182 - Repeated type-annotation on type arg in method reference not written to class file and I'm wondering is that last one is related. -steve On 2/22/2013 6:09 PM, Werner Dietl wrote: > Thanks for these tests! > I'll work on fixing them in the type-annotations repository ASAP. > > cu, WMD. > > On Fri, Feb 22, 2013 at 6:07 PM, Steve Sides wrote: >> Hi Werner, >> I have been looking at type-annotations in anonymous and inner classes. >> I have a few new bugs. They are showing yet in bugs.sun.com, but they should >> by tomorrow(?). >> Only the first one is a jtreg test. The other 2 are part of a larger test >> with some classfile checking, but I >> put the sample code here so you can javac,javap it. >> >> -steve >> >> 8008751 - Type Annotation on array level in nested class of anonymous class >> results in NPE at >> com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792) >> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >> - - - - - - - - >> /* >> * @test >> * @summary type-annotation on array level in nested class results in NPE >> * @bug 8008751 >> */ >> import java.lang.annotation.*; >> import static java.lang.annotation.RetentionPolicy.*; >> import static java.lang.annotation.ElementType.*; >> import java.util.List; >> >> class T8008751 { >> Object mtest( T8008751 t){ return null; } >> Object mmtest( T8008751 t){ return null; } >> public void test() { >> mtest( new T8008751() { >> class InnerAnon { >> @A("ok") String s = (@A("ok") String)( new @A("ok") >> Object()); >> @A("ok") Object @A("NPE")[] [] ia_sa1 = null; >> } >> // If not instanciated, no crash. >> InnerAnon IA = new InnerAnon(); >> }); >> } >> } >> @Retention(RUNTIME) @Target(TYPE_USE) @interface A { String value(); } >> >> >> 8008762 - Type annotation on inner class in anonymous class show up as >> regular type annotations >> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >> - - - - - - - - >> import java.lang.annotation.*; >> import static java.lang.annotation.RetentionPolicy.*; >> import static java.lang.annotation.ElementType.*; >> >> class Test1 { // Test1.class >> @A @B String data = "test"; >> @A @B String m(){ return null; }; >> Object mtest( Test1 t){ return null; } >> public void test() { >> mtest( new Test1() { // Test1$1.class >> @A @B String a_data = "test"; >> @A @B String a_m(){ return null; }; >> class InnerAnon { // Test1$1$InnerAnon.class >> @A @B String ai_data = "test"; >> @A @B String ai_m(){ return null; }; >> } >> InnerAnon IA = new InnerAnon(); >> }); >> } >> } >> >> @Retention(RUNTIME) @Target(TYPE_USE) @interface A { } >> @Retention(CLASS) @Target(TYPE_USE) @interface B { } >> >> >> 8008769 - Repeated type-annotations on type parameter of local variable are >> not written to classfile. >> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >> - - - - - - - - >> import java.lang.annotation.*; >> import static java.lang.annotation.RetentionPolicy.*; >> import static java.lang.annotation.ElementType.*; >> >> class Test { >> Test<@A @A @A String> t = new Test<>(); //ok >> >> public void test() { >> Test<@B String> t1 = new Test<>(); //ok >> Test<@A @A @A String> t2 = new Test<>(); //not ok >> } >> } >> >> @Target(TYPE_USE) @Repeatable( AC.class ) @interface A { } >> @Target(TYPE_USE) @interface AC { A[] value(); } >> @Target(TYPE_USE) @Repeatable( BC.class ) @interface B { } >> @Target(TYPE_USE) @interface BC { B[] value(); } >> >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/type-annotations-dev/attachments/20130222/50d71c4b/attachment.html From wdietl at gmail.com Fri Feb 22 18:25:09 2013 From: wdietl at gmail.com (Werner Dietl) Date: Fri, 22 Feb 2013 18:25:09 -0800 Subject: some new bugs In-Reply-To: <51282603.1080202@oracle.com> References: <5128245A.8040701@oracle.com> <51282603.1080202@oracle.com> Message-ID: We previously agreed that Joel will look into the tests that only fail for repeated type annotations. cu, WMD. On Fri, Feb 22, 2013 at 6:14 PM, Steve Sides wrote: > yep. > > I had entered an earlier one, > 8008182 - Repeated type-annotation on type arg in method reference not > written to class file > and I'm wondering is that last one is related. > > -steve > > > On 2/22/2013 6:09 PM, Werner Dietl wrote: > > Thanks for these tests! > I'll work on fixing them in the type-annotations repository ASAP. > > cu, WMD. > > On Fri, Feb 22, 2013 at 6:07 PM, Steve Sides wrote: > > Hi Werner, > I have been looking at type-annotations in anonymous and inner classes. > I have a few new bugs. They are showing yet in bugs.sun.com, but they should > by tomorrow(?). > Only the first one is a jtreg test. The other 2 are part of a larger test > with some classfile checking, but I > put the sample code here so you can javac,javap it. > > -steve > > 8008751 - Type Annotation on array level in nested class of anonymous class > results in NPE at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792) > 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - - > /* > * @test > * @summary type-annotation on array level in nested class results in NPE > * @bug 8008751 > */ > import java.lang.annotation.*; > import static java.lang.annotation.RetentionPolicy.*; > import static java.lang.annotation.ElementType.*; > import java.util.List; > > class T8008751 { > Object mtest( T8008751 t){ return null; } > Object mmtest( T8008751 t){ return null; } > public void test() { > mtest( new T8008751() { > class InnerAnon { > @A("ok") String s = (@A("ok") String)( new @A("ok") > Object()); > @A("ok") Object @A("NPE")[] [] ia_sa1 = null; > } > // If not instanciated, no crash. > InnerAnon IA = new InnerAnon(); > }); > } > } > @Retention(RUNTIME) @Target(TYPE_USE) @interface A { String value(); } > > > 8008762 - Type annotation on inner class in anonymous class show up as > regular type annotations > 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - - > import java.lang.annotation.*; > import static java.lang.annotation.RetentionPolicy.*; > import static java.lang.annotation.ElementType.*; > > class Test1 { // Test1.class > @A @B String data = "test"; > @A @B String m(){ return null; }; > Object mtest( Test1 t){ return null; } > public void test() { > mtest( new Test1() { // Test1$1.class > @A @B String a_data = "test"; > @A @B String a_m(){ return null; }; > class InnerAnon { // Test1$1$InnerAnon.class > @A @B String ai_data = "test"; > @A @B String ai_m(){ return null; }; > } > InnerAnon IA = new InnerAnon(); > }); > } > } > > @Retention(RUNTIME) @Target(TYPE_USE) @interface A { } > @Retention(CLASS) @Target(TYPE_USE) @interface B { } > > > 8008769 - Repeated type-annotations on type parameter of local variable are > not written to classfile. > 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - > - - - - - - - - > import java.lang.annotation.*; > import static java.lang.annotation.RetentionPolicy.*; > import static java.lang.annotation.ElementType.*; > > class Test { > Test<@A @A @A String> t = new Test<>(); //ok > > public void test() { > Test<@B String> t1 = new Test<>(); //ok > Test<@A @A @A String> t2 = new Test<>(); //not ok > } > } > > @Target(TYPE_USE) @Repeatable( AC.class ) @interface A { } > @Target(TYPE_USE) @interface AC { A[] value(); } > @Target(TYPE_USE) @Repeatable( BC.class ) @interface B { } > @Target(TYPE_USE) @interface BC { B[] value(); } > > > > > -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Sat Feb 23 17:59:07 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sun, 24 Feb 2013 01:59:07 +0000 Subject: hg: type-annotations/type-annotations/jaxws: 2 new changesets Message-ID: <20130224015917.B759347D98@hg.openjdk.java.net> Changeset: 391de4c992d1 Author: katleman Date: 2013-02-14 11:43 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/391de4c992d1 Added tag jdk8-b77 for changeset 64dfba1bad16 ! .hgtags Changeset: c3b07cd54a68 Author: wmdietl Date: 2013-02-23 17:58 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jaxws/rev/c3b07cd54a68 Automated merge with http://hg.openjdk.java.net/jdk8/tl/jaxws ! .hgtags From wdietl at gmail.com Sat Feb 23 17:59:52 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sun, 24 Feb 2013 01:59:52 +0000 Subject: hg: type-annotations/type-annotations/corba: 3 new changesets Message-ID: <20130224015957.6C81E47D9B@hg.openjdk.java.net> Changeset: 27d6368ae8ba Author: katleman Date: 2013-02-14 11:43 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/27d6368ae8ba Added tag jdk8-b77 for changeset 35684a40c584 ! .hgtags Changeset: c528d8ce83f1 Author: lana Date: 2013-02-19 20:48 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/c528d8ce83f1 Merge Changeset: 1385214619a3 Author: wmdietl Date: 2013-02-23 17:59 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/corba/rev/1385214619a3 Automated merge with http://hg.openjdk.java.net/jdk8/tl/corba ! .hgtags From wdietl at gmail.com Sat Feb 23 18:03:30 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sun, 24 Feb 2013 02:03:30 +0000 Subject: hg: type-annotations/type-annotations/langtools: 30 new changesets Message-ID: <20130224020647.AD95547DA1@hg.openjdk.java.net> Changeset: 2620c953e9fe Author: vromero Date: 2013-02-18 14:33 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/2620c953e9fe 6563143: javac should issue a warning for overriding equals without hashCode Reviewed-by: jjg, mcimadamore ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Lint.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/Resolve.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/sjavac/comp/Dependencies.java + test/tools/javac/6563143/OverridesEqualsButNotHashCodeTest.java + test/tools/javac/6563143/OverridesEqualsButNotHashCodeTest.out ! test/tools/javac/diags/examples.not-yet.txt Changeset: 87884cd0fea3 Author: jjg Date: 2013-02-18 14:29 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/87884cd0fea3 8008339: Test TargetAnnoCombo.java is broken Reviewed-by: jjh ! test/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java Changeset: eb79a7841164 Author: wmdietl Date: 2013-02-18 15:35 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/eb79a7841164 Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Lint.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/Resolve.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! test/tools/javac/diags/examples.not-yet.txt Changeset: 168d80958b13 Author: wmdietl Date: 2013-02-23 17:56 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/168d80958b13 Support storing type annotations in instance and class initializers. Re-shuffle type annotations from field initializers from the field symbol to the init/clinit methods. ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/jvm/Gen.java + test/tools/javac/annotations/typeAnnotations/referenceinfos/Initializers.java Changeset: b03c16f8c094 Author: wmdietl Date: 2013-02-23 17:57 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/b03c16f8c094 Fix typo. ! src/share/classes/com/sun/tools/javac/util/List.java Changeset: 5a390194b5ed Author: wmdietl Date: 2013-02-23 17:57 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/5a390194b5ed Support type annotations on a class nested within a method. ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/NestedTypes.java Changeset: f746399c6629 Author: wmdietl Date: 2013-02-23 17:58 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/f746399c6629 Automated merge with http://hg.openjdk.java.net/type-annotations/type-annotations/langtools ! src/share/classes/com/sun/tools/javac/code/Symbol.java ! src/share/classes/com/sun/tools/javac/comp/Attr.java Changeset: 011cf7e0a148 Author: darcy Date: 2013-02-19 00:31 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/011cf7e0a148 8008267: Add @Supported annotation to com.sun.source types Reviewed-by: 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/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/com/sun/tools/javac/Server.java Changeset: dc8b7aa7cef3 Author: vromero Date: 2013-02-19 17:53 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/dc8b7aa7cef3 8006212: javac, convert jtreg tests from shell script to java Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/api/JavacTaskImpl.java ! src/share/classes/com/sun/tools/javac/util/ArrayUtils.java + test/tools/apt/Basics/CheckAptIsRemovedTest.java - test/tools/apt/Basics/NullAPF.java - test/tools/apt/Basics/apt.sh - test/tools/apt/verifyVariables.sh + test/tools/javac/4846262/CheckEBCDICLocaleTest.java - test/tools/javac/4846262/Test.java - test/tools/javac/4846262/Test.out - test/tools/javac/4846262/Test.sh + test/tools/javac/6302184/HiddenOptionsShouldUseGivenEncodingTest.java - test/tools/javac/6302184/T6302184.sh + test/tools/javac/ClassPathTest/ClassPathTest.java - test/tools/javac/ClassPathTest/ClassPathTest.sh - test/tools/javac/ClassPathTest/ClassPathTest1.java - test/tools/javac/ClassPathTest/ClassPathTest2.java - test/tools/javac/ClassPathTest/ClassPathTest3.java - test/tools/javac/ClassPathTest/bar/pkg/ClassPathTestAux2.java - test/tools/javac/ClassPathTest/foo/pkg/ClassPathTestAux1.java - test/tools/javac/ClassPathTest/pkg/ClassPathTestAux3.java + test/tools/javac/ExtDirs/ExtDirTest.java - test/tools/javac/ExtDirs/ExtDirTest_1.java - test/tools/javac/ExtDirs/ExtDirTest_2.java - test/tools/javac/ExtDirs/ExtDirTest_3.java - test/tools/javac/ExtDirs/ExtDirs.sh - test/tools/javac/MissingInclude.java - test/tools/javac/MissingInclude.sh + test/tools/javac/MissingInclude/MissingIncludeTest.java - test/tools/javac/ProtectedInnerClass/ProtectedInnerClass.sh - test/tools/javac/ProtectedInnerClass/ProtectedInnerClass_2.java + test/tools/javac/ProtectedInnerClass/ProtectedInnerClassesTest.java - test/tools/javac/ProtectedInnerClass/p1/ProtectedInnerClass1.java - test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass2.java - test/tools/javac/ProtectedInnerClass/p2/ProtectedInnerClass3.java + test/tools/javac/T5090006/AssertionFailureTest.java - test/tools/javac/T5090006/T5090006.java - test/tools/javac/T5090006/compiler.sh - test/tools/javac/constDebug/ConstDebug.java - test/tools/javac/constDebug/ConstDebug.sh + test/tools/javac/constDebug/ConstDebugTest.java - test/tools/javac/fatalErrors/NoJavaLang.java - test/tools/javac/fatalErrors/NoJavaLang.out - test/tools/javac/fatalErrors/NoJavaLang.sh + test/tools/javac/fatalErrors/NoJavaLangTest.java - test/tools/javac/innerClassFile/Driver.sh + test/tools/javac/innerClassFile/InnerClassFileTest.java - test/tools/javac/innerClassFile/x/B.java - test/tools/javac/innerClassFile/x/C.java - test/tools/javac/innerClassFile/y/Main.java - test/tools/javac/innerClassFile/y/R1.java - test/tools/javac/innerClassFile/y/R2.java - test/tools/javac/innerClassFile/y/R3.java - test/tools/javac/javazip/A.java + test/tools/javac/javazip/JavaZipTest.java - test/tools/javac/javazip/Test.sh - test/tools/javac/javazip/bad/B.java - test/tools/javac/javazip/good/B.java + test/tools/javac/lib/ToolBox.java + test/tools/javac/links/LinksTest.java - test/tools/javac/links/T.java - test/tools/javac/links/b/B.java - test/tools/javac/links/links.sh + test/tools/javac/newlines/NewLineTest.java - test/tools/javac/newlines/Newlines.sh + test/tools/javac/stackmap/StackMapTest.java - test/tools/javac/stackmap/T4955930.java - test/tools/javac/stackmap/T4955930.sh ! test/tools/javac/unicode/SupplementaryJavaID6.java - test/tools/javac/unicode/SupplementaryJavaID6.sh + test/tools/javah/6257087/T6257087.java - test/tools/javah/6257087/foo.java - test/tools/javah/6257087/foo.sh - test/tools/javah/6257087/foo_bar.h - test/tools/javah/ConstMacroTest.sh - test/tools/javah/MissingParamClassException.java - test/tools/javah/MissingParamClassTest.sh - test/tools/javah/ParamClassTest.java - test/tools/javah/SubClassConsts.java - test/tools/javah/SubClassConsts.out - test/tools/javah/SubClassConsts.win - test/tools/javah/SuperClassConsts.java + test/tools/javah/T4942232/MissingParamClassTest.java + test/tools/javah/constMacroTest/ConstMacroTest.java + test/tools/javap/4798312/JavapShouldLoadClassesFromRTJarTest.java + test/tools/javap/4866831/PublicInterfaceTest.java - test/tools/javap/NotPackagePrivateInterface.java - test/tools/javap/PublicInterfaceTest.sh - test/tools/javap/pathsep.sh + test/tools/javap/stackmap/StackmapTest.java - test/tools/javap/stackmap/T6271292.java - test/tools/javap/stackmap/T6271292.out - test/tools/javap/stackmap/T6271292.sh Changeset: 9345394ac8fe Author: ksrini Date: 2013-02-19 17:19 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/9345394ac8fe 8006948: Update javac for MethodParameters format change Reviewed-by: ksrini, forax Contributed-by: eric.mccorkle at oracle.com ! src/share/classes/com/sun/tools/classfile/ClassWriter.java ! src/share/classes/com/sun/tools/classfile/MethodParameters_attribute.java ! src/share/classes/com/sun/tools/javac/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java Changeset: bc24411bcc37 Author: katleman Date: 2013-02-14 11:44 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/bc24411bcc37 Added tag jdk8-b77 for changeset 89c664151689 ! .hgtags Changeset: a3aa32fe4536 Author: lana Date: 2013-02-14 22:11 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/a3aa32fe4536 Merge Changeset: 4cf6e84f844f Author: lana Date: 2013-02-19 20:53 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/4cf6e84f844f Merge Changeset: 267225edc1fe Author: strarup Date: 2013-02-20 15:47 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/267225edc1fe 8006582: Test for parameter names feature Reviewed-by: jjg, darcy, emc - test/tools/javac/MethodParameters.java + test/tools/javac/MethodParameters/AnnotationTest.java + test/tools/javac/MethodParameters/AnonymousClass.java + test/tools/javac/MethodParameters/AttributeVisitor.java + test/tools/javac/MethodParameters/ClassFileVisitor.java + test/tools/javac/MethodParameters/Constructors.java + test/tools/javac/MethodParameters/EnumTest.java + test/tools/javac/MethodParameters/InstanceMethods.java + test/tools/javac/MethodParameters/LambdaTest.java + test/tools/javac/MethodParameters/LocalClassTest.java + test/tools/javac/MethodParameters/MemberClassTest.java + test/tools/javac/MethodParameters/ReflectionVisitor.java + test/tools/javac/MethodParameters/StaticMethods.java + test/tools/javac/MethodParameters/Tester.java + test/tools/javac/MethodParameters/UncommonParamNames.java + test/tools/javac/MethodParametersTest.java Changeset: d686d8a7eb78 Author: mcimadamore Date: 2013-02-21 15:19 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/d686d8a7eb78 8008227: Mixing lambdas with anonymous classes leads to NPE thrown by compiler Summary: Disentangle cyclic dependency between static-ness of synthetic lambda method and static-ness of classes nested within lambdas Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/tools/javac/lambda/LambdaConv27.java Changeset: 3a39d123d33a Author: mcimadamore Date: 2013-02-21 15:21 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/3a39d123d33a 8008276: assertion error in com.sun.tools.javac.comp.TransTypes.visitApply Summary: DiagnosticFilter used during speculative attribution is too broad Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/DeferredAttr.java ! src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java + test/tools/javac/lambda/speculative/MissingError.java + test/tools/javac/lambda/speculative/MissingError.out Changeset: f4fdd53f8b3e Author: mcimadamore Date: 2013-02-21 15:23 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/f4fdd53f8b3e 8005183: Missing accessor for constructor reference pointing to private inner class ctor Summary: Compiler should add bridges when translating private constructor reference Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java + test/tools/javac/lambda/MethodReference63.java Changeset: 7ac9242d2ca6 Author: mcimadamore Date: 2013-02-21 15:25 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/7ac9242d2ca6 8008293: Declared bounds not considered when functional interface containing unbound wildcards is instantiated Summary: Wildcards inference should re-use some of the bounds info generated during capture conversion Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/lambda/TargetType64.java Changeset: 9f0ec00514b6 Author: mcimadamore Date: 2013-02-21 15:26 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/9f0ec00514b6 8007461: Regression: bad overload resolution when inner class and outer class have method with same name Summary: Fix regression in varargs method resolution introduced by bad refactoring Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/comp/Resolve.java ! test/tools/javac/resolve/Pos.java + test/tools/javac/resolve/tests/InnerOverOuter.java Changeset: 3fef0cae83b3 Author: mcimadamore Date: 2013-02-21 15:27 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/3fef0cae83b3 8008444: Inherited generic functional descriptors are merged incorrectly Summary: Missing call to Types.createMethodWithThrownTypes Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/lambda/LambdaConv25.java + test/tools/javac/lambda/LambdaConv25.out Changeset: cd7340a84bb8 Author: rfield Date: 2013-02-21 14:43 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/cd7340a84bb8 8008405: Now that metafactory is in place, add javac lambda serialization tests Summary: Tests part of original langtools serialization review. Reviewed-by: mcimadamore + test/tools/javac/T8004969.java + test/tools/javac/lambda/LambdaInnerTypeVarArgsSerialize.java + test/tools/javac/lambda/LambdaInnerTypeVarSerialize.java Changeset: dabb36173c63 Author: ksrini Date: 2013-02-21 12:23 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/dabb36173c63 8008658: Four new method param jtreg tests fail in nightly tests Reviewed-by: jjg, ksrini, mcimadamore Contributed-by: eric.mccorkle at oracle.com ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! test/tools/javac/MethodParameters/EnumTest.java ! test/tools/javac/MethodParameters/LocalClassTest.java ! test/tools/javac/MethodParameters/MemberClassTest.java Changeset: 5f0731e4e5e6 Author: bpatel Date: 2013-01-21 00:45 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/5f0731e4e5e6 8006124: javadoc/doclet should be updated to support profiles Reviewed-by: jjg ! src/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/AbstractProfileIndexWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/FrameOutputWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/ProfileIndexFrameWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageFrameWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/ProfilePackageIndexFrameWriter.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/WriterFactoryImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlConstants.java ! src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/ProfilePackageSummaryWriter.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/ProfileSummaryWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/WriterFactory.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/BuilderFactory.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ProfilePackageSummaryBuilder.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ProfileSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocPaths.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java + test/com/sun/javadoc/testProfiles/TestProfiles.java + test/com/sun/javadoc/testProfiles/pkg1/Class1Pkg1.java + test/com/sun/javadoc/testProfiles/pkg1/Class2Pkg1.java + test/com/sun/javadoc/testProfiles/pkg1/Class3Pkg1.java + test/com/sun/javadoc/testProfiles/pkg1/Interface1Pkg1.java + test/com/sun/javadoc/testProfiles/pkg2/Anno1Pkg2.java + test/com/sun/javadoc/testProfiles/pkg2/Anno2Pkg2.java + test/com/sun/javadoc/testProfiles/pkg2/Class1Pkg2.java + test/com/sun/javadoc/testProfiles/pkg3/Class1Pkg3.java + test/com/sun/javadoc/testProfiles/pkg3/Class2Pkg3.java + test/com/sun/javadoc/testProfiles/pkg3/Interface1Pkg3.java + test/com/sun/javadoc/testProfiles/pkg4/Anno1Pkg4.java + test/com/sun/javadoc/testProfiles/pkg4/Class1Pkg4.java + test/com/sun/javadoc/testProfiles/pkg5/Class1Pkg5.java + test/com/sun/javadoc/testProfiles/pkg5/Interface1Pkg5.java + test/com/sun/javadoc/testProfiles/profile-rtjar-includes.txt Changeset: 475eb15dfdad Author: jjg Date: 2013-01-21 01:27 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/475eb15dfdad 8004182: Add support for profiles in javac Reviewed-by: mcimadamore ! 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/Symtab.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/jvm/ClassReader.java + src/share/classes/com/sun/tools/javac/jvm/Profile.java ! src/share/classes/com/sun/tools/javac/jvm/Target.java ! src/share/classes/com/sun/tools/javac/main/Main.java ! src/share/classes/com/sun/tools/javac/main/Option.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/resources/javac.properties ! src/share/classes/com/sun/tools/javac/sym/CreateSymbols.java + src/share/classes/com/sun/tools/javac/sym/Profiles.java ! src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java + test/tools/javac/diags/examples/NotInProfile.java + test/tools/javac/profiles/ProfileOptionTest.java Changeset: f91144b7da75 Author: dholmes Date: 2013-02-04 18:08 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/f91144b7da75 Merge ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties ! src/share/classes/com/sun/tools/javac/code/Flags.java ! src/share/classes/com/sun/tools/javac/code/Symtab.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/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java - test/tools/javac/annotations/repeatingAnnotations/MissingContainedBy.java - test/tools/javac/annotations/repeatingAnnotations/MissingContainerFor.java - test/tools/javac/annotations/repeatingAnnotations/UseWrongContainedBy.java - test/tools/javac/annotations/repeatingAnnotations/UseWrongContainerFor.java - test/tools/javac/annotations/repeatingAnnotations/WrongContainedBy.java - test/tools/javac/annotations/repeatingAnnotations/WrongContainerFor.java - test/tools/javac/diags/examples/ContainedByDocumentedMismatch.java - test/tools/javac/diags/examples/ContainedByInheritedMismatch.java - test/tools/javac/diags/examples/ContainedByNoValue.java - test/tools/javac/diags/examples/ContainedByNonDefault.java - test/tools/javac/diags/examples/ContainedByRetentionMismatch.java - test/tools/javac/diags/examples/ContainedByTargetMismatch.java - test/tools/javac/diags/examples/ContainedByWrongValueType.java - test/tools/javac/diags/examples/InferredDoNotConformToLower.java - test/tools/javac/diags/examples/NoUniqueMaximalInstance.java - test/tools/javac/diags/examples/WrongContainedBy.java - test/tools/javac/diags/examples/WrongContainerFor.java - test/tools/javac/lambda/MethodReference26.out - test/tools/javac/lambda/TargetType06.out - test/tools/javac/lambda/TargetType11.out - test/tools/javac/lambda/TargetType45.out - test/tools/javac/lambda/VoidCompatibility.out - test/tools/javac/typeAnnotations/newlocations/BasicTest.java - test/tools/javac/typeAnnotations/newlocations/BasicTest.out Changeset: af8417e590f4 Author: dholmes Date: 2013-02-17 16:44 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/af8417e590f4 Merge ! src/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java ! src/share/classes/com/sun/tools/javac/code/Flags.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/jvm/ClassReader.java - test/tools/javac/lambda/TargetType20.out - test/tools/javac/lambda/TargetType50.out Changeset: 6118072811e5 Author: lana Date: 2013-02-21 17:49 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/6118072811e5 Merge ! 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/Symtab.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/jvm/ClassReader.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties Changeset: 8e82e4f225e4 Author: mcimadamore Date: 2013-02-22 13:31 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/8e82e4f225e4 8008337: Write test to check for compiler error when static method in interface is called via super() Reviewed-by: mcimadamore Contributed-by: sonali.goel at oracle.com + test/tools/javac/lambda/StaticMethodNegTest.java + test/tools/javac/lambda/StaticMethodNegTest.out Changeset: 94e67bed460d Author: mcimadamore Date: 2013-02-22 18:19 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/94e67bed460d 8008708: Regression: separate compilation causes crash in wildcards inference logic Summary: Invalid use of WildcardType.bound in Types.removeWildcards Reviewed-by: jjg ! src/share/classes/com/sun/tools/javac/code/Types.java + test/tools/javac/lambda/separate/Foo.java + test/tools/javac/lambda/separate/Test.java Changeset: 1501dcbd051e Author: wmdietl Date: 2013-02-23 17:58 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/1501dcbd051e Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! .hgtags ! src/share/classes/com/sun/source/tree/AnnotatedTypeTree.java ! src/share/classes/com/sun/source/tree/MethodTree.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/TypeParameterTree.java ! src/share/classes/com/sun/source/util/SimpleTreeVisitor.java ! src/share/classes/com/sun/source/util/TaskEvent.java ! src/share/classes/com/sun/source/util/TreePath.java ! src/share/classes/com/sun/source/util/TreeScanner.java ! src/share/classes/com/sun/source/util/Trees.java ! src/share/classes/com/sun/tools/classfile/ClassWriter.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/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/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/Resolve.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/Target.java ! src/share/classes/com/sun/tools/javac/resources/compiler.properties ! src/share/classes/com/sun/tools/javac/resources/javac.properties ! src/share/classes/com/sun/tools/javac/util/JCDiagnostic.java ! src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java - src/share/classes/javax/lang/model/type/AnnotatedType.java From wdietl at gmail.com Sat Feb 23 18:03:54 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sun, 24 Feb 2013 02:03:54 +0000 Subject: hg: type-annotations/type-annotations/hotspot: 37 new changesets Message-ID: <20130224020717.2EC4847DA4@hg.openjdk.java.net> Changeset: 1f84c84f8e1a Author: katleman Date: 2013-02-14 11:43 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/1f84c84f8e1a Added tag jdk8-b77 for changeset cdb46031e718 ! .hgtags Changeset: 1a0174612b49 Author: amurillo Date: 2013-02-08 08:16 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/1a0174612b49 8007801: new hotspot build - hs25-b19 Reviewed-by: jcoomes ! make/hotspot_version Changeset: 8d9fc28831cc Author: dcubed Date: 2013-02-06 14:31 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/8d9fc28831cc 7182152: Instrumentation hot swap test incorrect monitor count Summary: Add/refine new tracing support using -XX:TraceRedefineClasses=16384. Reviewed-by: coleenp, acorn, sspitsyn ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/cpCache.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/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiRedefineClasses.hpp ! src/share/vm/prims/jvmtiRedefineClassesTrace.hpp ! src/share/vm/utilities/accessFlags.cpp ! src/share/vm/utilities/accessFlags.hpp Changeset: 3a88007634b0 Author: ctornqvi Date: 2013-02-08 10:42 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/3a88007634b0 8007434: Write tests for 8006298 Summary: Four tests written for 8006298 Reviewed-by: mgerdin, coleenp + test/runtime/CommandLine/BooleanFlagWithInvalidValue.java + test/runtime/CommandLine/FlagWithInvalidValue.java + test/runtime/CommandLine/NonBooleanFlagWithInvalidBooleanPrefix.java + test/runtime/CommandLine/UnrecognizedVMOption.java Changeset: 758935f7c23f Author: sla Date: 2013-02-08 12:48 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/758935f7c23f 8006423: SA: NullPointerException in sun.jvm.hotspot.debugger.bsd.BsdThread.getContext(BsdThread.java:67) Summary: Do not rely on mach thread port names to identify threads from SA Reviewed-by: dholmes, minqi, rbackman ! agent/src/os/bsd/MacosxDebuggerLocal.m ! agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebugger.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdDebuggerLocal.java ! agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThread.java ! agent/src/share/classes/sun/jvm/hotspot/runtime/bsd_amd64/BsdAMD64JavaThreadPDAccess.java ! src/os/bsd/vm/osThread_bsd.hpp ! src/os/bsd/vm/os_bsd.cpp ! src/os_cpu/bsd_x86/vm/vmStructs_bsd_x86.hpp Changeset: 7194f764221c Author: sla Date: 2013-02-08 14:05 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/7194f764221c Merge Changeset: 461a3adac4d1 Author: sspitsyn Date: 2013-02-08 09:14 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/461a3adac4d1 Merge ! src/share/vm/oops/cpCache.cpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp Changeset: 8bf62bd86a4e Author: zgu Date: 2013-02-08 14:49 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/8bf62bd86a4e 8007791: More Restricted hs_err file permission Summary: Enforce more restricted hs_file permission Reviewed-by: acorn, dcubed, dsamersoff ! src/share/vm/utilities/vmError.cpp Changeset: 1ba5b18088a8 Author: zgu Date: 2013-02-08 14:32 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/1ba5b18088a8 Merge Changeset: 41d73c9b30a8 Author: zgu Date: 2013-02-08 16:31 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/41d73c9b30a8 8006691: Remove jvm_version_info.is_kernel_jvm field Summary: Removed is_kernel_jvm from jvm_version_info as Kernel VM has been deprecated Reviewed-by: mchung, coleenp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvm.h Changeset: 3f11b37f047c Author: zgu Date: 2013-02-08 13:55 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/3f11b37f047c Merge Changeset: f989aff6946f Author: zgu Date: 2013-02-08 16:56 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/f989aff6946f Merge Changeset: 927a311d00f9 Author: coleenp Date: 2013-02-11 14:06 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/927a311d00f9 8007320: NPG: move method annotations Summary: allocate method annotations and attach to ConstMethod if present Reviewed-by: dcubed, jiangli, sspitsyn, iklam ! agent/src/share/classes/sun/jvm/hotspot/oops/ConstMethod.java ! src/share/vm/classfile/classFileParser.cpp ! src/share/vm/classfile/classFileParser.hpp ! src/share/vm/classfile/defaultMethods.cpp ! src/share/vm/memory/heapInspection.hpp ! src/share/vm/oops/annotations.cpp ! src/share/vm/oops/annotations.hpp ! src/share/vm/oops/constMethod.cpp ! src/share/vm/oops/constMethod.hpp ! src/share/vm/oops/instanceKlass.cpp ! src/share/vm/oops/instanceKlass.hpp ! src/share/vm/oops/method.cpp ! src/share/vm/oops/method.hpp ! src/share/vm/prims/jvm.cpp ! src/share/vm/prims/jvmtiRedefineClasses.cpp ! src/share/vm/prims/jvmtiRedefineClasses.hpp ! src/share/vm/runtime/fieldDescriptor.cpp ! src/share/vm/runtime/vmStructs.cpp + test/runtime/8007320/ConstMethodTest.java Changeset: 5ee2b330eacd Author: zgu Date: 2013-02-12 12:19 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/5ee2b330eacd 8007950: Undo hs_file permission change Summary: Reverse hs_err file permission back to 0666, as early push was premature Reviewed-by: dsamersoff, dcubed, acorn ! src/share/vm/utilities/vmError.cpp Changeset: deb43b8a436e Author: sspitsyn Date: 2013-02-13 08:42 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/deb43b8a436e Merge Changeset: bce1ac447f6b Author: johnc Date: 2013-02-06 14:50 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/bce1ac447f6b 7052429: G1: Avoid unnecessary scanning of humongous regions during concurrent marking Summary: Skip unnecessary scanning of bitmap for unmarked humongous objects/regions. Reviewed-by: jwilhelm, johnc Contributed-by: Tao Mao ! src/share/vm/gc_implementation/g1/concurrentMark.cpp ! src/share/vm/runtime/globals.hpp Changeset: f64ffbf81af5 Author: jwilhelm Date: 2013-02-07 15:51 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/f64ffbf81af5 8006432: Ratio flags should be unsigned Summary: Flags changed to be of uintx type Reviewed-by: johnc, tamao ! src/cpu/zero/vm/shark_globals_zero.hpp ! src/os_cpu/bsd_x86/vm/globals_bsd_x86.hpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp ! src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp ! src/share/vm/gc_implementation/g1/g1_globals.hpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: 5d8325eb8240 Author: brutisso Date: 2013-02-07 22:04 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/5d8325eb8240 Merge ! src/share/vm/runtime/thread.cpp Changeset: 9425ba04792d Author: brutisso Date: 2013-02-07 18:40 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/9425ba04792d Merge - agent/src/share/classes/sun/jvm/hotspot/memory/BinaryTreeDictionary.java - make/solaris/makefiles/kernel.make ! src/share/vm/runtime/arguments.cpp - test/runtime/7158988/TestFieldMonitor.sh Changeset: ad747ee9d0b1 Author: brutisso Date: 2013-02-10 21:15 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/ad747ee9d0b1 8002144: G1: large number of evacuation failures may lead to large c heap memory usage Summary: Use Stack<> instead of GrowableArray to keep track of preserved marks. Also reviewed by vitalyd at gmail.com. Reviewed-by: johnc, jcoomes ! src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp ! src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Changeset: 5e401ef52ec0 Author: johnc Date: 2013-02-11 15:24 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/5e401ef52ec0 8007772: G1: assert(!hr->isHumongous() || mr.start() == hr->bottom()) failed: the start of HeapRegion and MemRegion should be consistent for humongous regions Summary: In do_marking_step(), we should always give up current region after scanning the object, if the region is humongous. Reviewed-by: brutisso, jwilhelm, tamao ! src/share/vm/gc_implementation/g1/concurrentMark.cpp Changeset: a83cd101fd62 Author: jmasa Date: 2013-01-23 19:08 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/a83cd101fd62 8005452: NPG: Create new flags for Metaspace resizing policy Reviewed-by: johnc, jwilhelm, coleenp, stefank ! src/share/vm/memory/metaspace.cpp ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/globals.hpp Changeset: b8d5d7a6c94c Author: brutisso Date: 2013-02-14 11:01 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/b8d5d7a6c94c Merge ! src/share/vm/runtime/arguments.cpp ! src/share/vm/runtime/thread.cpp Changeset: 91a23b11d8dc Author: kvn Date: 2013-02-08 15:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/91a23b11d8dc 8007708: compiler/6855215 assert(VM_Version::supports_sse4_2()) Summary: Added missing UseSSE42 check. Also added missing avx2 assert for vpermq instruction. Reviewed-by: roland, twisti ! src/cpu/x86/vm/assembler_x86.cpp ! src/cpu/x86/vm/macroAssembler_x86.cpp Changeset: 309460dcedf7 Author: morris Date: 2013-02-08 15:39 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/309460dcedf7 8006851: When TieredCompilation is set, max code cache should be bumped to 256mb Summary: Set ReservedCodeCacheSize to (default value)*5 when TieredCompilation is on. Reviewed-by: kvn, twisti ! src/share/vm/runtime/arguments.cpp Changeset: 2c673161698a Author: drchase Date: 2013-02-09 12:55 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/2c673161698a 8007402: Code cleanup to remove Parfait false positive Summary: add array access range check Reviewed-by: kvn ! src/share/vm/opto/regmask.cpp ! src/share/vm/opto/regmask.hpp Changeset: 64d2a0a39954 Author: kmo Date: 2013-02-10 22:35 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/64d2a0a39954 8006430: TraceTypeProfile is a product flag while it should be a diagnostic flag Summary: make sure all diagnostic and experimental flag kinds are checked in Flag::is_unlocked() Reviewed-by: kvn ! src/share/vm/runtime/globals.cpp Changeset: a9c29dfc7d73 Author: morris Date: 2013-02-11 10:38 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/a9c29dfc7d73 8003251: ARM: move MacroAssembler into separate file Summary: moved MacroAssembler into separate file Reviewed-by: twisti, kvn, dlong ! src/share/vm/asm/macroAssembler.hpp ! src/share/vm/asm/macroAssembler.inline.hpp Changeset: 1e5e28bac299 Author: morris Date: 2013-02-11 14:47 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/1e5e28bac299 8003252: PPC: move MacroAssembler into separate file Summary: moved MacroAssembler into separate file Reviewed-by: twisti, kvn, dlong ! src/share/vm/asm/macroAssembler.hpp ! src/share/vm/asm/macroAssembler.inline.hpp Changeset: 8b3da8d14c93 Author: roland Date: 2013-02-12 12:56 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/8b3da8d14c93 7197327: 40% regression on 8 b41 comp 8 b40 on specjvm2008.mpegaudio on oob Summary: Add support for expensive nodes. Reviewed-by: kvn ! src/share/vm/opto/c2_globals.hpp ! src/share/vm/opto/compile.cpp ! src/share/vm/opto/compile.hpp ! src/share/vm/opto/library_call.cpp ! src/share/vm/opto/loopnode.cpp ! src/share/vm/opto/loopnode.hpp ! src/share/vm/opto/node.cpp ! src/share/vm/opto/node.hpp ! src/share/vm/opto/phaseX.cpp ! src/share/vm/opto/subnode.hpp Changeset: c703f9c4b025 Author: kmo Date: 2013-02-12 07:39 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/c703f9c4b025 8002169: TEST_BUG: compiler/7009359/Test7009359.java sometimes times out Summary: make the test less prone to timeout by reducing the amount of iteration and allowing main to be compiled Reviewed-by: jrose ! test/compiler/7009359/Test7009359.java Changeset: aaad39923cdb Author: kmo Date: 2013-02-12 14:33 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/aaad39923cdb Merge Changeset: 12e01444ca2d Author: iignatyev Date: 2013-02-13 08:29 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/12e01444ca2d 8006683: Add WhiteBox API to testing of compiler Reviewed-by: kvn, vlivanov ! src/share/tools/whitebox/sun/hotspot/WhiteBox.java ! src/share/vm/prims/wbtestmethods/parserTests.hpp ! src/share/vm/prims/whitebox.cpp ! src/share/vm/prims/whitebox.hpp + test/compiler/whitebox/CompilerWhiteBoxTest.java + test/compiler/whitebox/DeoptimizeAllTest.java + test/compiler/whitebox/DeoptimizeMethodTest.java + test/compiler/whitebox/IsMethodCompilableTest.java + test/compiler/whitebox/MakeMethodNotCompilableTest.java + test/compiler/whitebox/SetDontInlineMethodTest.java Changeset: 1cdf241a4b26 Author: vlivanov Date: 2013-02-14 05:36 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/1cdf241a4b26 Merge ! src/share/vm/runtime/arguments.cpp Changeset: 9f19f4a7d48a Author: amurillo Date: 2013-02-15 13:27 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/9f19f4a7d48a Merge Changeset: d5e12e7d2f71 Author: amurillo Date: 2013-02-15 13:27 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/d5e12e7d2f71 Added tag hs25-b19 for changeset 9f19f4a7d48a ! .hgtags Changeset: c524437547d1 Author: wmdietl Date: 2013-02-23 18:03 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/hotspot/rev/c524437547d1 Automated merge with http://hg.openjdk.java.net/jdk8/tl/hotspot ! .hgtags From wdietl at gmail.com Sat Feb 23 18:07:16 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sun, 24 Feb 2013 02:07:16 +0000 Subject: hg: type-annotations/type-annotations: 15 new changesets Message-ID: <20130224020718.D08E647DA7@hg.openjdk.java.net> Changeset: ecc8fda8f187 Author: darcy Date: 2013-02-19 00:24 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/ecc8fda8f187 8008435: Fix new build to include jdk.Supported in ct.sym Reviewed-by: erikj ! common/makefiles/javadoc/NON_CORE_PKGS.gmk Changeset: 45dcccc6d221 Author: katleman Date: 2013-02-14 11:43 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/45dcccc6d221 Added tag jdk8-b77 for changeset 3933eebc659d ! .hgtags Changeset: bbb7548d45c7 Author: lana Date: 2013-02-14 22:11 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/bbb7548d45c7 Merge Changeset: eca3bce3d151 Author: lana Date: 2013-02-19 20:48 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/eca3bce3d151 Merge Changeset: c641268c4532 Author: mduigou Date: 2013-02-20 17:56 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/c641268c4532 8008629: webrev.ksh needs to quote bug title it gets back from scraping bugs.sun.com Reviewed-by: darcy ! make/scripts/webrev.ksh Changeset: ffb4d2e95140 Author: erikj Date: 2013-02-15 10:40 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/ffb4d2e95140 8005879: Add -DMAC_OS_X_VERSION_MAX_ALLOWED=1070 to builds on Mac Reviewed-by: ohair ! common/autoconf/generated-configure.sh ! common/autoconf/spec.gmk.in ! common/autoconf/toolchain.m4 Changeset: b0642df54d63 Author: erikj Date: 2013-02-18 10:46 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/b0642df54d63 Merge Changeset: b80abec66e70 Author: bpatel Date: 2013-01-21 00:29 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/b80abec66e70 8006124: javadoc/doclet should be updated to support profiles Reviewed-by: jjg, dholmes ! common/makefiles/javadoc/Javadoc.gmk Changeset: 7ed0c9db6943 Author: dholmes Date: 2013-01-21 01:50 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/7ed0c9db6943 8004265: Add build support for Compact Profiles Reviewed-by: erikj, ohair ! NewMakefile.gmk ! common/autoconf/generated-configure.sh ! common/makefiles/Main.gmk Changeset: 2f8fd30f02e6 Author: dholmes Date: 2013-01-22 19:30 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/2f8fd30f02e6 Merge ! common/autoconf/generated-configure.sh Changeset: bebeaa04ab8e Author: dholmes Date: 2013-02-04 18:08 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/bebeaa04ab8e Merge ! common/autoconf/generated-configure.sh ! common/makefiles/javadoc/Javadoc.gmk Changeset: 28071e4ca1de Author: dholmes Date: 2013-02-17 16:44 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/28071e4ca1de Merge ! common/autoconf/generated-configure.sh ! common/makefiles/Main.gmk Changeset: fd1a5574cf68 Author: dholmes Date: 2013-02-18 15:35 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/fd1a5574cf68 Merge ! common/autoconf/generated-configure.sh Changeset: b70196e01c53 Author: lana Date: 2013-02-21 17:39 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/b70196e01c53 Merge Changeset: eab4704719d1 Author: wmdietl Date: 2013-02-23 18:07 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/rev/eab4704719d1 Automated merge with http://hg.openjdk.java.net/jdk8/tl/ ! .hgtags From wdietl at gmail.com Sat Feb 23 18:01:21 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sun, 24 Feb 2013 02:01:21 +0000 Subject: hg: type-annotations/type-annotations/jdk: 64 new changesets Message-ID: <20130224022216.E70FA47DAE@hg.openjdk.java.net> Changeset: bcde0486261e Author: dingxmin Date: 2013-02-18 08:14 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/bcde0486261e 6429204: (se) Concurrent Selector.register and SelectionKey.interestOps can ignore interestOps Reviewed-by: alanb ! src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java + test/java/nio/channels/Selector/RacyDeregister.java Changeset: 49b3d8efd30a Author: darcy Date: 2013-02-19 00:19 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/49b3d8efd30a 8008434: Misc javadoc warning fixes in DateTimeFormatterBuilder and TimeZone Reviewed-by: mduigou, okutsu ! src/share/classes/java/time/format/DateTimeFormatterBuilder.java ! src/share/classes/java/util/TimeZone.java Changeset: 885bb24f6018 Author: coffeys Date: 2013-02-19 14:07 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/885bb24f6018 7197187: Currency.isPastCutoverDate should be made more robust Reviewed-by: alanb ! src/share/classes/java/util/Currency.java Changeset: 01b6b0dd2006 Author: coffeys Date: 2013-02-19 14:12 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/01b6b0dd2006 8007315: HttpURLConnection.filterHeaderField method returns null where empty string is expected Reviewed-by: chegar ! src/share/classes/sun/net/www/protocol/http/HttpURLConnection.java ! test/sun/net/www/protocol/http/HttpOnly.java Changeset: 824187de1591 Author: jzavgren Date: 2013-02-19 16:19 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/824187de1591 8007609: WinNTFileSystem_md.c should correctly check value returned from realloc Reviewed-by: alanb, chegar, dholmes ! src/windows/native/java/io/WinNTFileSystem_md.c Changeset: e20c1c9197bf Author: emc Date: 2013-02-19 17:09 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/e20c1c9197bf 8008312: Re-enable MethodParameter tests in JDK Reviewed-by: darcy ! src/share/classes/java/lang/reflect/Parameter.java ! test/java/lang/reflect/Parameter/WithParameters.java Changeset: af396ec087f4 Author: naoto Date: 2013-02-19 10:34 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/af396ec087f4 7092447: Clarify the default locale used in each locale sensitive operation Reviewed-by: okutsu ! src/share/classes/java/text/DateFormat.java ! src/share/classes/java/text/DateFormatSymbols.java ! src/share/classes/java/text/DecimalFormat.java ! src/share/classes/java/text/DecimalFormatSymbols.java ! src/share/classes/java/text/MessageFormat.java ! src/share/classes/java/text/NumberFormat.java ! src/share/classes/java/text/SimpleDateFormat.java ! src/share/classes/java/time/format/DateTimeFormatSymbols.java ! src/share/classes/java/util/Calendar.java ! src/share/classes/java/util/Currency.java ! src/share/classes/java/util/Formatter.java ! src/share/classes/java/util/GregorianCalendar.java ! src/share/classes/java/util/Locale.java ! src/share/classes/java/util/Scanner.java Changeset: 16efb7ba188f Author: mduigou Date: 2013-02-19 11:56 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/16efb7ba188f 8004561: Additional functional interfaces, extension methods and name changes Summary: Adds additional functional interfaces for primitives and "Bi" (two operand). Adds utility extension methods. Includes some name changes for existing functional interfaces per EG decisions. Reviewed-by: briangoetz, darcy, chegar, dholmes ! src/share/classes/java/time/chrono/HijrahDeviationReader.java ! src/share/classes/java/util/concurrent/atomic/AtomicInteger.java ! src/share/classes/java/util/concurrent/atomic/AtomicIntegerArray.java ! src/share/classes/java/util/concurrent/atomic/AtomicIntegerFieldUpdater.java ! src/share/classes/java/util/concurrent/atomic/AtomicLong.java ! src/share/classes/java/util/concurrent/atomic/AtomicLongArray.java ! src/share/classes/java/util/concurrent/atomic/AtomicLongFieldUpdater.java ! src/share/classes/java/util/concurrent/atomic/AtomicReference.java ! src/share/classes/java/util/concurrent/atomic/AtomicReferenceArray.java ! src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java ! src/share/classes/java/util/concurrent/atomic/DoubleAccumulator.java ! src/share/classes/java/util/concurrent/atomic/LongAccumulator.java ! src/share/classes/java/util/concurrent/atomic/Striped64.java + src/share/classes/java/util/function/BiConsumer.java + src/share/classes/java/util/function/BiFunction.java + src/share/classes/java/util/function/BiPredicate.java ! src/share/classes/java/util/function/BinaryOperator.java - src/share/classes/java/util/function/Block.java + src/share/classes/java/util/function/BooleanSupplier.java + src/share/classes/java/util/function/Consumer.java ! src/share/classes/java/util/function/DoubleBinaryOperator.java - src/share/classes/java/util/function/DoubleBlock.java + src/share/classes/java/util/function/DoubleConsumer.java ! src/share/classes/java/util/function/DoubleFunction.java + src/share/classes/java/util/function/DoublePredicate.java ! src/share/classes/java/util/function/DoubleSupplier.java ! src/share/classes/java/util/function/DoubleUnaryOperator.java ! src/share/classes/java/util/function/Function.java ! src/share/classes/java/util/function/IntBinaryOperator.java - src/share/classes/java/util/function/IntBlock.java + src/share/classes/java/util/function/IntConsumer.java ! src/share/classes/java/util/function/IntFunction.java + src/share/classes/java/util/function/IntPredicate.java ! src/share/classes/java/util/function/IntSupplier.java ! src/share/classes/java/util/function/IntUnaryOperator.java ! src/share/classes/java/util/function/LongBinaryOperator.java - src/share/classes/java/util/function/LongBlock.java + src/share/classes/java/util/function/LongConsumer.java ! src/share/classes/java/util/function/LongFunction.java + src/share/classes/java/util/function/LongPredicate.java ! src/share/classes/java/util/function/LongSupplier.java ! src/share/classes/java/util/function/LongUnaryOperator.java + src/share/classes/java/util/function/ObjDoubleConsumer.java + src/share/classes/java/util/function/ObjIntConsumer.java + src/share/classes/java/util/function/ObjLongConsumer.java ! src/share/classes/java/util/function/Predicate.java + src/share/classes/java/util/function/ToDoubleBiFunction.java + src/share/classes/java/util/function/ToDoubleFunction.java + src/share/classes/java/util/function/ToIntBiFunction.java + src/share/classes/java/util/function/ToIntFunction.java + src/share/classes/java/util/function/ToLongBiFunction.java + src/share/classes/java/util/function/ToLongFunction.java ! src/share/classes/java/util/function/UnaryOperator.java ! src/share/classes/java/util/function/package-info.java ! test/java/lang/PrimitiveSumMinMaxTest.java Changeset: 267bca6af07e Author: jzavgren Date: 2013-02-19 15:31 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/267bca6af07e 8008107: [parfait] Use after free of pointer in jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c Reviewed-by: mullan, chegar ! src/share/native/sun/security/pkcs11/wrapper/p11_convert.c Changeset: ec1a79c3a99c Author: ksrini Date: 2013-02-19 16:49 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ec1a79c3a99c 8008262: pack200 should support MethodParameters - part 2 Reviewed-by: jrose ! src/share/classes/com/sun/java/util/jar/pack/Attribute.java ! src/share/classes/com/sun/java/util/jar/pack/BandStructure.java ! src/share/classes/com/sun/java/util/jar/pack/PackageReader.java ! src/share/native/com/sun/java/util/jar/pack/bands.cpp ! src/share/native/com/sun/java/util/jar/pack/bands.h ! src/share/native/com/sun/java/util/jar/pack/unpack.cpp ! test/tools/pack200/AttributeTests.java ! test/tools/pack200/Utils.java Changeset: c1304eb051f6 Author: katleman Date: 2013-02-14 11:44 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c1304eb051f6 Added tag jdk8-b77 for changeset b2fc8e31cecc ! .hgtags Changeset: 37719b174e87 Author: jgodinez Date: 2013-02-06 14:45 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/37719b174e87 8005194: [parfait] #353 sun/awt/image/jpeg/imageioJPEG.c Memory leak of pointer 'scale' allocated with calloc() Reviewed-by: prr, vadim Contributed-by: jia-hong.chen at oracle.com ! src/share/native/sun/awt/image/jpeg/imageioJPEG.c Changeset: ad49012d10a1 Author: jgodinez Date: 2013-02-08 11:25 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ad49012d10a1 8005129: [parfait] #1122 - #1130 native/sun/awt/medialib/mlib_Image*.c Memory leak of pointer 'k' allocated with mlib_malloc Reviewed-by: prr, vadim Contributed-by: jia-hong.chen at oracle.com ! src/share/native/sun/awt/medialib/mlib_ImageConv.h ! src/share/native/sun/awt/medialib/mlib_ImageConvMxN_ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_32nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c ! src/share/native/sun/awt/medialib/mlib_ImageCreate.c ! src/share/native/sun/awt/medialib/mlib_c_ImageConv.h Changeset: 1ea9feb6d8c5 Author: jgodinez Date: 2013-02-08 11:36 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/1ea9feb6d8c5 8005261: [parfait] #415 sun/java2d/opengl/GLXSurfaceData.c Memory leak of pointer 'glxsdo' allocated with malloc Reviewed-by: prr, vadim Contributed-by: jia-hong.chen at oracle.com ! src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c Changeset: 5f0217537435 Author: prr Date: 2013-02-12 09:58 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/5f0217537435 8007748: MacOSX build error : cast of type 'SEL' to 'uintptr_t' (aka 'unsigned long') is deprecated; use sel_getName instead Reviewed-by: anthony ! src/macosx/native/jobjc/src/core/native/SEL.m Changeset: 1b47e2dfa89a Author: lana Date: 2013-02-13 13:01 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/1b47e2dfa89a Merge - src/share/classes/java/lang/annotation/ContainedBy.java - src/share/classes/java/lang/annotation/ContainerFor.java - test/java/net/URL/abnormal_http_urls - test/java/net/URL/ftp_urls - test/java/net/URL/jar_urls - test/java/net/URL/normal_http_urls - test/java/net/URL/runconstructor.sh - test/java/net/URL/share_file_urls - test/java/net/URL/win32_file_urls - test/sun/net/www/EncDec.doc - test/sun/net/www/MarkResetTest.java - test/sun/net/www/MarkResetTest.sh - test/sun/security/util/Oid/S11N.sh - test/sun/security/util/Oid/SerialTest.java Changeset: 6df3acd02449 Author: prr Date: 2013-02-13 15:06 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/6df3acd02449 8008017: The fix for 8005129 does not build on Windows Reviewed-by: prr, jgodinez Contributed-by: jia-hong.chen at oracle.com ! src/share/native/sun/awt/medialib/mlib_ImageConv_16ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_16nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_8ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_8nw.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_u16ext.c ! src/share/native/sun/awt/medialib/mlib_ImageConv_u16nw.c Changeset: ac89a5d71466 Author: alexsch Date: 2013-02-06 18:25 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ac89a5d71466 8000326: Focus unable to traverse in the menubar Reviewed-by: alexsch, malenkov ! src/share/classes/javax/swing/JMenuBar.java Changeset: 6e17465f4a1a Author: mcherkas Date: 2013-02-08 22:08 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/6e17465f4a1a 8005932: Java 7 on mac os x only provides text clipboard formats Reviewed-by: alexp, denis ! src/macosx/lib/flavormap.properties + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/AbsoluteComponentCenterCalculator.java + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/DataFlavorSearcher.java + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/InterprocessMessages.java + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MyTransferable.java + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/NextFramePositionCalculator.java + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/SourcePanel.java + test/java/awt/DataFlavor/MissedHtmlAndRtfBug/TargetPanel.java Changeset: 5406c4e381e2 Author: kshefov Date: 2013-02-13 18:01 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/5406c4e381e2 7161759: TEST_BUG: java/awt/Frame/WindowDragTest/WindowDragTest.java fails to compile, should be modified Summary: Added @build Util jtreg tag Reviewed-by: serb, alexsch Contributed-by: Vera Akulova ! test/java/awt/Frame/WindowDragTest/WindowDragTest.java Changeset: dd6cf41a6953 Author: kshefov Date: 2013-02-13 19:06 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/dd6cf41a6953 7132383: [macosx] bug6596966.java should be adapted for Mac Reviewed-by: serb, alexsch Contributed-by: Vera Akulova ! test/javax/swing/JLabel/6596966/bug6596966.java ! test/javax/swing/regtesthelpers/Util.java Changeset: caec64340f42 Author: vkarnauk Date: 2013-02-13 19:23 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/caec64340f42 4199622: RFE: JComboBox shouldn't sending ActionEvents for keyboard navigation Reviewed-by: alexp, alexsch ! src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java ! src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java + test/javax/swing/JComboBox/4199622/bug4199622.java Changeset: 4d9691e95e05 Author: pchelko Date: 2013-02-13 15:27 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/4d9691e95e05 7079260: InputContext leaks memory Summary: Replaced strong refs with weak refs Reviewed-by: art, serb ! src/share/classes/sun/awt/im/CompositionAreaHandler.java ! src/solaris/classes/sun/awt/X11InputMethod.java + test/java/awt/im/memoryleak/InputContextMemoryLeakTest.java ! test/java/awt/regtesthelpers/Util.java Changeset: c552cde0e3f9 Author: pchelko Date: 2013-02-13 15:32 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c552cde0e3f9 8005629: javac warnings compiling java.awt.EventDispatchThread and sun.awt.X11.XIconWindow Summary: Removed macosx specific workaround from shared code and made macosx use public API Reviewed-by: art, serb ! src/macosx/classes/sun/lwawt/macosx/CPrinterJob.java - src/macosx/classes/sun/lwawt/macosx/EventDispatchAccess.java ! src/macosx/native/sun/awt/CPrinterJob.m ! src/share/classes/java/awt/EventDispatchThread.java ! src/solaris/classes/sun/awt/X11/XIconWindow.java Changeset: c95dc15ac183 Author: lana Date: 2013-02-13 12:38 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c95dc15ac183 Merge - src/share/classes/java/lang/annotation/ContainedBy.java - src/share/classes/java/lang/annotation/ContainerFor.java - test/java/net/URL/abnormal_http_urls - test/java/net/URL/ftp_urls - test/java/net/URL/jar_urls - test/java/net/URL/normal_http_urls - test/java/net/URL/runconstructor.sh - test/java/net/URL/share_file_urls - test/java/net/URL/win32_file_urls - test/sun/net/www/EncDec.doc - test/sun/net/www/MarkResetTest.java - test/sun/net/www/MarkResetTest.sh - test/sun/security/util/Oid/S11N.sh - test/sun/security/util/Oid/SerialTest.java Changeset: c9efb349b391 Author: lana Date: 2013-02-13 17:55 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c9efb349b391 Merge - src/macosx/classes/sun/lwawt/macosx/EventDispatchAccess.java Changeset: dc3019a336c0 Author: lana Date: 2013-02-13 17:57 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/dc3019a336c0 Merge - src/share/classes/java/time/PeriodParser.java - src/share/classes/java/time/calendar/ChronoDateImpl.java - src/share/classes/java/time/calendar/HijrahChrono.java - src/share/classes/java/time/calendar/HijrahDate.java - src/share/classes/java/time/calendar/HijrahDeviationReader.java - src/share/classes/java/time/calendar/HijrahEra.java - src/share/classes/java/time/calendar/JapaneseChrono.java - src/share/classes/java/time/calendar/JapaneseDate.java - src/share/classes/java/time/calendar/JapaneseEra.java - src/share/classes/java/time/calendar/MinguoChrono.java - src/share/classes/java/time/calendar/MinguoDate.java - src/share/classes/java/time/calendar/MinguoEra.java - src/share/classes/java/time/calendar/Ser.java - src/share/classes/java/time/calendar/ThaiBuddhistChrono.java - src/share/classes/java/time/calendar/ThaiBuddhistDate.java - src/share/classes/java/time/calendar/ThaiBuddhistEra.java - src/share/classes/java/time/calendar/package-info.java - src/share/classes/java/time/format/DateTimeFormatters.java - src/share/classes/java/time/format/DateTimePrintException.java - src/share/classes/java/time/temporal/Chrono.java - src/share/classes/java/time/temporal/ChronoLocalDate.java - src/share/classes/java/time/temporal/ChronoLocalDateTime.java - src/share/classes/java/time/temporal/ChronoLocalDateTimeImpl.java - src/share/classes/java/time/temporal/ChronoZonedDateTime.java - src/share/classes/java/time/temporal/ChronoZonedDateTimeImpl.java - src/share/classes/java/time/temporal/Era.java - src/share/classes/java/time/temporal/ISOChrono.java - src/share/classes/java/time/temporal/ISOEra.java - src/share/classes/java/time/temporal/ISOFields.java - src/share/classes/java/time/temporal/MonthDay.java - src/share/classes/java/time/temporal/OffsetDate.java - src/share/classes/java/time/temporal/OffsetDateTime.java - src/share/classes/java/time/temporal/OffsetTime.java - src/share/classes/java/time/temporal/Ser.java - src/share/classes/java/time/temporal/SimplePeriod.java - src/share/classes/java/time/temporal/TemporalAdder.java - src/share/classes/java/time/temporal/TemporalSubtractor.java - src/share/classes/java/time/temporal/Year.java - src/share/classes/java/time/temporal/YearMonth.java - src/share/classes/sun/util/calendar/TzIDOldMapping.java - test/java/time/META-INF/services/java.time.temporal.Chrono - test/java/time/tck/java/time/calendar/CopticChrono.java - test/java/time/tck/java/time/calendar/CopticDate.java - test/java/time/tck/java/time/calendar/CopticEra.java - test/java/time/tck/java/time/calendar/TestChronoLocalDate.java - test/java/time/tck/java/time/calendar/TestChronoLocalDateTime.java - test/java/time/tck/java/time/calendar/TestHijrahChrono.java - test/java/time/tck/java/time/calendar/TestJapaneseChrono.java - test/java/time/tck/java/time/calendar/TestMinguoChrono.java - test/java/time/tck/java/time/calendar/TestServiceLoader.java - test/java/time/tck/java/time/calendar/TestThaiBuddhistChrono.java - test/java/time/tck/java/time/format/TCKDateTimePrintException.java - test/java/time/tck/java/time/temporal/TCKISOFields.java - test/java/time/tck/java/time/temporal/TCKMonthDay.java - test/java/time/tck/java/time/temporal/TCKOffsetDate.java - test/java/time/tck/java/time/temporal/TCKOffsetDateTime.java - test/java/time/tck/java/time/temporal/TCKOffsetTime.java - test/java/time/tck/java/time/temporal/TCKSimplePeriod.java - test/java/time/tck/java/time/temporal/TCKYear.java - test/java/time/tck/java/time/temporal/TCKYearMonth.java - test/java/time/tck/java/time/temporal/TestChrono.java - test/java/time/tck/java/time/temporal/TestISOChrono.java - test/java/time/test/java/time/TestPeriodParser.java - test/java/time/test/java/time/format/TestDateTimeFormatters.java - test/java/time/test/java/time/format/TestDateTimePrintException.java - test/java/time/test/java/time/format/TestPadParserDecorator.java - test/java/time/test/java/time/format/TestZoneIdParser.java - test/java/time/test/java/time/temporal/TestISOChronoImpl.java - test/java/time/test/java/time/temporal/TestMonthDay.java - test/java/time/test/java/time/temporal/TestOffsetDate.java - test/java/time/test/java/time/temporal/TestOffsetDateTime.java - test/java/time/test/java/time/temporal/TestOffsetDateTime_instants.java - test/java/time/test/java/time/temporal/TestOffsetTime.java - test/java/time/test/java/time/temporal/TestYear.java - test/java/time/test/java/time/temporal/TestYearMonth.java Changeset: 5ea0024ba765 Author: lana Date: 2013-02-14 22:12 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/5ea0024ba765 Merge Changeset: 85a44860f5bb Author: lana Date: 2013-02-19 20:52 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/85a44860f5bb Merge - src/macosx/classes/sun/lwawt/macosx/EventDispatchAccess.java Changeset: ca43e2761a1d Author: ykantser Date: 2013-02-13 10:24 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ca43e2761a1d 8008089: Delete OS dependent check in JdkFinder.getExecutable() Reviewed-by: egahlin, alanb ! test/lib/testlibrary/jdk/testlibrary/JdkFinder.java Changeset: 0a2b308cc82d Author: uta Date: 2013-02-20 16:39 +0400 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/0a2b308cc82d 8007454: (process) SetHandleInformation parameters DWORD (not BOOLEAN) Summary: the SetHandleInformation arguments list was fixed. Reviewed-by: alanb ! src/windows/native/java/lang/ProcessImpl_md.c Changeset: 5772e9edbc4c Author: dcubed Date: 2013-02-20 13:23 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/5772e9edbc4c 8008352: java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh fails on MKS Summary: Use more portable pattern counting constructs in test driver. Reviewed-by: sspitsyn, sla, coleenp ! test/java/lang/instrument/RedefineSubclassWithTwoInterfaces.sh Changeset: 1da987f0311a Author: rfield Date: 2013-02-21 15:46 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/1da987f0311a 8008356: Test LambdaSerialization.java failing Summary: run in /othervm mode Reviewed-by: ksrini ! test/java/lang/invoke/lambda/LambdaSerialization.java Changeset: 90707943f83c Author: erikj Date: 2013-02-15 10:41 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/90707943f83c 8005879: Add -DMAC_OS_X_VERSION_MAX_ALLOWED=1070 to builds on Mac Reviewed-by: ohair ! make/common/Defs-macosx.gmk Changeset: 9a693ebd5595 Author: erikj Date: 2013-02-18 10:48 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/9a693ebd5595 Merge - src/macosx/classes/sun/lwawt/macosx/EventDispatchAccess.java - src/share/classes/java/time/PeriodParser.java - src/share/classes/java/time/calendar/ChronoDateImpl.java - src/share/classes/java/time/calendar/HijrahChrono.java - src/share/classes/java/time/calendar/HijrahDate.java - src/share/classes/java/time/calendar/HijrahDeviationReader.java - src/share/classes/java/time/calendar/HijrahEra.java - src/share/classes/java/time/calendar/JapaneseChrono.java - src/share/classes/java/time/calendar/JapaneseDate.java - src/share/classes/java/time/calendar/JapaneseEra.java - src/share/classes/java/time/calendar/MinguoChrono.java - src/share/classes/java/time/calendar/MinguoDate.java - src/share/classes/java/time/calendar/MinguoEra.java - src/share/classes/java/time/calendar/Ser.java - src/share/classes/java/time/calendar/ThaiBuddhistChrono.java - src/share/classes/java/time/calendar/ThaiBuddhistDate.java - src/share/classes/java/time/calendar/ThaiBuddhistEra.java - src/share/classes/java/time/calendar/package-info.java - src/share/classes/java/time/format/DateTimeFormatters.java - src/share/classes/java/time/format/DateTimePrintException.java - src/share/classes/java/time/temporal/Chrono.java - src/share/classes/java/time/temporal/ChronoLocalDate.java - src/share/classes/java/time/temporal/ChronoLocalDateTime.java - src/share/classes/java/time/temporal/ChronoLocalDateTimeImpl.java - src/share/classes/java/time/temporal/ChronoZonedDateTime.java - src/share/classes/java/time/temporal/ChronoZonedDateTimeImpl.java - src/share/classes/java/time/temporal/Era.java - src/share/classes/java/time/temporal/ISOChrono.java - src/share/classes/java/time/temporal/ISOEra.java - src/share/classes/java/time/temporal/ISOFields.java - src/share/classes/java/time/temporal/MonthDay.java - src/share/classes/java/time/temporal/OffsetDate.java - src/share/classes/java/time/temporal/OffsetDateTime.java - src/share/classes/java/time/temporal/OffsetTime.java - src/share/classes/java/time/temporal/Ser.java - src/share/classes/java/time/temporal/SimplePeriod.java - src/share/classes/java/time/temporal/TemporalAdder.java - src/share/classes/java/time/temporal/TemporalSubtractor.java - src/share/classes/java/time/temporal/Year.java - src/share/classes/java/time/temporal/YearMonth.java - src/share/classes/sun/util/calendar/TzIDOldMapping.java - test/java/time/META-INF/services/java.time.temporal.Chrono - test/java/time/tck/java/time/calendar/CopticChrono.java - test/java/time/tck/java/time/calendar/CopticDate.java - test/java/time/tck/java/time/calendar/CopticEra.java - test/java/time/tck/java/time/calendar/TestChronoLocalDate.java - test/java/time/tck/java/time/calendar/TestChronoLocalDateTime.java - test/java/time/tck/java/time/calendar/TestHijrahChrono.java - test/java/time/tck/java/time/calendar/TestJapaneseChrono.java - test/java/time/tck/java/time/calendar/TestMinguoChrono.java - test/java/time/tck/java/time/calendar/TestServiceLoader.java - test/java/time/tck/java/time/calendar/TestThaiBuddhistChrono.java - test/java/time/tck/java/time/format/TCKDateTimePrintException.java - test/java/time/tck/java/time/temporal/TCKISOFields.java - test/java/time/tck/java/time/temporal/TCKMonthDay.java - test/java/time/tck/java/time/temporal/TCKOffsetDate.java - test/java/time/tck/java/time/temporal/TCKOffsetDateTime.java - test/java/time/tck/java/time/temporal/TCKOffsetTime.java - test/java/time/tck/java/time/temporal/TCKSimplePeriod.java - test/java/time/tck/java/time/temporal/TCKYear.java - test/java/time/tck/java/time/temporal/TCKYearMonth.java - test/java/time/tck/java/time/temporal/TestChrono.java - test/java/time/tck/java/time/temporal/TestISOChrono.java - test/java/time/test/java/time/TestPeriodParser.java - test/java/time/test/java/time/format/TestDateTimeFormatters.java - test/java/time/test/java/time/format/TestDateTimePrintException.java - test/java/time/test/java/time/format/TestPadParserDecorator.java - test/java/time/test/java/time/format/TestZoneIdParser.java - test/java/time/test/java/time/temporal/TestISOChronoImpl.java - test/java/time/test/java/time/temporal/TestMonthDay.java - test/java/time/test/java/time/temporal/TestOffsetDate.java - test/java/time/test/java/time/temporal/TestOffsetDateTime.java - test/java/time/test/java/time/temporal/TestOffsetDateTime_instants.java - test/java/time/test/java/time/temporal/TestOffsetTime.java - test/java/time/test/java/time/temporal/TestYear.java - test/java/time/test/java/time/temporal/TestYearMonth.java Changeset: fb7e3edf22b2 Author: erikj Date: 2013-02-18 11:26 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/fb7e3edf22b2 8008294: build-infra: Build-infra closed fails on solaris 11.1 Reviewed-by: ohrstrom, dholmes, tbell ! makefiles/CompileDemos.gmk ! makefiles/CompileNativeLibraries.gmk Changeset: a23b0df73324 Author: erikj Date: 2013-02-18 11:27 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/a23b0df73324 8008295: build-infra: Cleanup in Import.gmk Reviewed-by: ohrstrom, tbell ! makefiles/Import.gmk Changeset: 32549d339437 Author: bpatel Date: 2013-01-21 00:31 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/32549d339437 8006124: javadoc/doclet should be updated to support profiles Reviewed-by: jjg, dholmes ! make/docs/Makefile Changeset: 80afadbf967d Author: alanb Date: 2013-01-21 01:46 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/80afadbf967d 8004182: Add support for profiles in javac Reviewed-by: dholmes ! make/common/Release.gmk Changeset: 353b88963430 Author: dholmes Date: 2013-01-21 21:54 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/353b88963430 8006651: build-infra: Import.gmk needs to add support for the minimal VM Reviewed-by: erikj, ohair ! makefiles/Import.gmk Changeset: 7096f51288ab Author: dholmes Date: 2013-01-21 23:17 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/7096f51288ab 8004265: Add build support for Compact Profiles Reviewed-by: erikj, ohair ! make/tools/src/build/tools/jarreorder/JarReorder.java ! makefiles/BuildJdk.gmk ! makefiles/CreateJars.gmk ! makefiles/Images.gmk + makefiles/ProfileNames.gmk + makefiles/Profiles.gmk Changeset: ccd0aceb1190 Author: alanb Date: 2013-01-21 23:20 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/ccd0aceb1190 8003255: (profiles) Update JAR file specification to support profiles Reviewed-by: dholmes, mchung, ksrini ! src/share/classes/java/net/URLClassLoader.java ! src/share/classes/java/util/jar/Attributes.java + src/share/classes/java/util/jar/UnsupportedProfileException.java ! src/share/classes/sun/launcher/LauncherHelper.java ! src/share/classes/sun/launcher/resources/launcher.properties ! src/share/classes/sun/misc/URLClassPath.java ! src/share/classes/sun/tools/jar/Main.java ! src/share/classes/sun/tools/jar/resources/jar.properties + 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 Changeset: c024147205f6 Author: alanb Date: 2013-01-21 23:21 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c024147205f6 8003256: (profiles) Add support for profile identification Reviewed-by: dholmes, mchung, ksrini ! make/java/version/Makefile ! makefiles/GensrcMisc.gmk ! src/share/classes/sun/misc/Version.java.template + test/tools/launcher/profiles/VersionCheck.java Changeset: 4b3434f5f509 Author: alanb Date: 2013-01-21 23:23 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/4b3434f5f509 8004931: add/removePropertyChangeListener should not exist in subset Profiles of Java SE Reviewed-by: dholmes, mchung, ksrini + make/tools/src/build/tools/RemoveMethods.java ! makefiles/Tools.gmk ! src/share/classes/java/util/jar/Pack200.java ! src/share/classes/java/util/logging/LogManager.java + test/java/util/logging/Reflect.java + test/tools/pack200/NoBeans.java + test/tools/pack200/Reflect.java Changeset: d9cfe581c8fe Author: alanb Date: 2013-01-21 23:35 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/d9cfe581c8fe 8004502: Compact Profiles contents Reviewed-by: dholmes, mchung + makefiles/profile-includes.txt + makefiles/profile-rtjar-includes.txt + test/java/lang/SecurityManager/NoAWT.java + test/java/security/cert/CertStore/NoLDAP.java + test/javax/management/remote/mandatory/connection/NoIIOP.java + test/javax/naming/InitialContext/NoApplet.java + test/sun/net/www/protocol/http/NoNTLM.java + test/sun/security/ssl/sanity/ciphersuites/NoKerberos.java Changeset: d1b29d290ebd Author: dholmes Date: 2013-01-22 19:31 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/d1b29d290ebd Merge Changeset: 0918d6d9c18b Author: dholmes Date: 2013-01-22 20:04 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/0918d6d9c18b 8006667: Merge issue: Profile attribute need to be examined before custom attributes Summary: swap profile checking and FXHelper checking Reviewed-by: alanb ! src/share/classes/sun/launcher/LauncherHelper.java Changeset: 77668918a388 Author: dholmes Date: 2013-02-04 18:08 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/77668918a388 Merge ! make/docs/Makefile ! makefiles/CreateJars.gmk ! makefiles/GensrcMisc.gmk ! makefiles/Tools.gmk ! src/share/classes/sun/misc/URLClassPath.java - test/java/rmi/activation/ActivationSystem/unregisterGroup/CallbackInterface.java - test/java/rmi/activation/ActivationSystem/unregisterGroup/Callback_Stub.java - test/java/rmi/activation/ActivationSystem/unregisterGroup/UnregisterGroup_Stub.java Changeset: f308a689c049 Author: dholmes Date: 2013-02-17 16:44 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/f308a689c049 Merge ! makefiles/Tools.gmk - src/macosx/classes/sun/lwawt/macosx/EventDispatchAccess.java - src/share/classes/java/lang/annotation/ContainedBy.java - src/share/classes/java/lang/annotation/ContainerFor.java - src/share/classes/java/time/PeriodParser.java - src/share/classes/java/time/calendar/ChronoDateImpl.java - src/share/classes/java/time/calendar/HijrahChrono.java - src/share/classes/java/time/calendar/HijrahDate.java - src/share/classes/java/time/calendar/HijrahDeviationReader.java - src/share/classes/java/time/calendar/HijrahEra.java - src/share/classes/java/time/calendar/JapaneseChrono.java - src/share/classes/java/time/calendar/JapaneseDate.java - src/share/classes/java/time/calendar/JapaneseEra.java - src/share/classes/java/time/calendar/MinguoChrono.java - src/share/classes/java/time/calendar/MinguoDate.java - src/share/classes/java/time/calendar/MinguoEra.java - src/share/classes/java/time/calendar/Ser.java - src/share/classes/java/time/calendar/ThaiBuddhistChrono.java - src/share/classes/java/time/calendar/ThaiBuddhistDate.java - src/share/classes/java/time/calendar/ThaiBuddhistEra.java - src/share/classes/java/time/calendar/package-info.java - src/share/classes/java/time/format/DateTimeFormatters.java - src/share/classes/java/time/format/DateTimePrintException.java - src/share/classes/java/time/temporal/Chrono.java - src/share/classes/java/time/temporal/ChronoLocalDate.java - src/share/classes/java/time/temporal/ChronoLocalDateTime.java - src/share/classes/java/time/temporal/ChronoLocalDateTimeImpl.java - src/share/classes/java/time/temporal/ChronoZonedDateTime.java - src/share/classes/java/time/temporal/ChronoZonedDateTimeImpl.java - src/share/classes/java/time/temporal/Era.java - src/share/classes/java/time/temporal/ISOChrono.java - src/share/classes/java/time/temporal/ISOEra.java - src/share/classes/java/time/temporal/ISOFields.java - src/share/classes/java/time/temporal/MonthDay.java - src/share/classes/java/time/temporal/OffsetDate.java - src/share/classes/java/time/temporal/OffsetDateTime.java - src/share/classes/java/time/temporal/OffsetTime.java - src/share/classes/java/time/temporal/Ser.java - src/share/classes/java/time/temporal/SimplePeriod.java - src/share/classes/java/time/temporal/TemporalAdder.java - src/share/classes/java/time/temporal/TemporalSubtractor.java - src/share/classes/java/time/temporal/Year.java - src/share/classes/java/time/temporal/YearMonth.java - src/share/classes/sun/util/calendar/TzIDOldMapping.java - test/java/net/URL/abnormal_http_urls - test/java/net/URL/ftp_urls - test/java/net/URL/jar_urls - test/java/net/URL/normal_http_urls - test/java/net/URL/runconstructor.sh - test/java/net/URL/share_file_urls - test/java/net/URL/win32_file_urls - test/java/time/META-INF/services/java.time.temporal.Chrono - test/java/time/tck/java/time/calendar/CopticChrono.java - test/java/time/tck/java/time/calendar/CopticDate.java - test/java/time/tck/java/time/calendar/CopticEra.java - test/java/time/tck/java/time/calendar/TestChronoLocalDate.java - test/java/time/tck/java/time/calendar/TestChronoLocalDateTime.java - test/java/time/tck/java/time/calendar/TestHijrahChrono.java - test/java/time/tck/java/time/calendar/TestJapaneseChrono.java - test/java/time/tck/java/time/calendar/TestMinguoChrono.java - test/java/time/tck/java/time/calendar/TestServiceLoader.java - test/java/time/tck/java/time/calendar/TestThaiBuddhistChrono.java - test/java/time/tck/java/time/format/TCKDateTimePrintException.java - test/java/time/tck/java/time/temporal/TCKISOFields.java - test/java/time/tck/java/time/temporal/TCKMonthDay.java - test/java/time/tck/java/time/temporal/TCKOffsetDate.java - test/java/time/tck/java/time/temporal/TCKOffsetDateTime.java - test/java/time/tck/java/time/temporal/TCKOffsetTime.java - test/java/time/tck/java/time/temporal/TCKSimplePeriod.java - test/java/time/tck/java/time/temporal/TCKYear.java - test/java/time/tck/java/time/temporal/TCKYearMonth.java - test/java/time/tck/java/time/temporal/TestChrono.java - test/java/time/tck/java/time/temporal/TestISOChrono.java - test/java/time/test/java/time/TestPeriodParser.java - test/java/time/test/java/time/format/TestDateTimeFormatters.java - test/java/time/test/java/time/format/TestDateTimePrintException.java - test/java/time/test/java/time/format/TestPadParserDecorator.java - test/java/time/test/java/time/format/TestZoneIdParser.java - test/java/time/test/java/time/temporal/TestISOChronoImpl.java - test/java/time/test/java/time/temporal/TestMonthDay.java - test/java/time/test/java/time/temporal/TestOffsetDate.java - test/java/time/test/java/time/temporal/TestOffsetDateTime.java - test/java/time/test/java/time/temporal/TestOffsetDateTime_instants.java - test/java/time/test/java/time/temporal/TestOffsetTime.java - test/java/time/test/java/time/temporal/TestYear.java - test/java/time/test/java/time/temporal/TestYearMonth.java - test/sun/net/www/EncDec.doc - test/sun/net/www/MarkResetTest.java - test/sun/net/www/MarkResetTest.sh - test/sun/security/util/Oid/S11N.sh - test/sun/security/util/Oid/SerialTest.java Changeset: 16c684b2ab82 Author: alanb Date: 2013-02-18 08:57 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/16c684b2ab82 8007436: (profiles) Add JSR-310 to Compact Profiles contents Reviewed-by: dholmes, erikj ! makefiles/profile-includes.txt ! makefiles/profile-rtjar-includes.txt Changeset: c24bc91caa67 Author: dholmes Date: 2013-02-18 15:35 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c24bc91caa67 Merge ! makefiles/Import.gmk Changeset: b46c75e221c7 Author: dholmes Date: 2013-02-19 06:27 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/b46c75e221c7 8008424: Isolate PROFILE make variable from incidental setting in the environment Reviewed-by: erikj, alanb ! makefiles/BuildJdk.gmk Changeset: 6f4615fd32da Author: alanb Date: 2013-02-19 11:08 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/6f4615fd32da 8007097: (profiles) Build needs test to ensure that profile definitions are updated Reviewed-by: dholmes, erikj - make/tools/src/build/tools/RemoveMethods.java + make/tools/src/build/tools/classfile/RemoveMethods.java + make/tools/src/build/tools/deps/CheckDeps.java + make/tools/src/build/tools/deps/refs.allowed ! makefiles/Images.gmk ! makefiles/Tools.gmk ! makefiles/profile-rtjar-includes.txt Changeset: 033f2707ef32 Author: alanb Date: 2013-02-19 11:32 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/033f2707ef32 Merge Changeset: 00b7535d743f Author: dholmes Date: 2013-02-19 17:32 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/00b7535d743f 8008481: Dependency analyzer needs exclusion for profile builds with JFR disabled Reviewed-by: alanb ! make/tools/src/build/tools/deps/refs.allowed Changeset: 03db11a7fb8e Author: lana Date: 2013-02-21 17:43 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/03db11a7fb8e Merge Changeset: 9078c34437ab Author: msheppar Date: 2013-02-21 20:01 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/9078c34437ab 8006182: cleanup to use java.util.Base64 in java security component, providers, and regression tests Summary: Refactored code to use java.util.Base64 Mime Encoder and Decoder as a replacement for sun.misc.BASE64Encoder and sun.misc.BASE64Decoder Reviewed-by: vinnie, chegar, sherman ! src/share/classes/sun/security/pkcs10/PKCS10.java ! src/share/classes/sun/security/provider/X509Factory.java ! src/share/classes/sun/security/tools/jarsigner/Main.java ! src/share/classes/sun/security/tools/keytool/Main.java ! src/share/classes/sun/security/util/ManifestEntryVerifier.java ! src/share/classes/sun/security/util/SignatureFileVerifier.java ! src/share/classes/sun/security/x509/X509CertImpl.java ! src/share/classes/sun/tools/jar/Manifest.java ! src/share/classes/sun/tools/jar/SignatureFile.java ! test/javax/security/auth/kerberos/KerberosTixDateTest.java ! test/sun/security/krb5/auto/HttpNegotiateServer.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/MD2InTrustAnchor.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLContextImpl/TrustTrustedCert.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/BasicConstraints.java ! test/sun/security/ssl/com/sun/net/ssl/internal/ssl/X509TrustManagerImpl/SelfIssuedCert.java ! test/sun/security/ssl/com/sun/net/ssl/internal/www/protocol/https/HttpsClient/ProxyTunnelServer.java ! test/sun/security/ssl/javax/net/ssl/ServerName/SSLSocketSNISensitive.java ! test/sun/security/ssl/javax/net/ssl/TLSv12/DisabledShortRSAKeys.java ! test/sun/security/ssl/javax/net/ssl/TLSv12/ShortRSAKey512.java ! test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/ProxyTunnelServer.java Changeset: c6d77b2b4478 Author: stefank Date: 2013-01-22 13:53 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/c6d77b2b4478 8006506: Add test for redefining methods in backtraces to java/lang/instrument tests Reviewed-by: sspitsyn, coleenp + test/java/lang/instrument/RedefineMethodInBacktrace.sh + test/java/lang/instrument/RedefineMethodInBacktraceAgent.java + test/java/lang/instrument/RedefineMethodInBacktraceApp.java + test/java/lang/instrument/RedefineMethodInBacktraceTarget.java + test/java/lang/instrument/RedefineMethodInBacktraceTarget_2.java Changeset: 0e93015e77f6 Author: stefank Date: 2013-01-22 15:25 +0100 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/0e93015e77f6 7140852: Add test for 7022100 Reviewed-by: sspitsyn, coleenp + test/java/lang/instrument/RedefineMethodWithAnnotations.sh + test/java/lang/instrument/RedefineMethodWithAnnotationsAgent.java + test/java/lang/instrument/RedefineMethodWithAnnotationsAnnotations.java + test/java/lang/instrument/RedefineMethodWithAnnotationsApp.java + test/java/lang/instrument/RedefineMethodWithAnnotationsTarget.java + test/java/lang/instrument/RedefineMethodWithAnnotationsTarget_2.java Changeset: 63fe6a9820b6 Author: alanb Date: 2013-02-22 14:04 +0000 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/63fe6a9820b6 8008290: (profiles) Startup regression due to additional checking of JAR file manifests Reviewed-by: lancea, chegar, iris, mchung, sherman ! src/share/classes/java/util/jar/JarFile.java ! src/share/classes/java/util/jar/JavaUtilJarAccessImpl.java ! src/share/classes/sun/misc/JavaUtilJarAccess.java ! src/share/classes/sun/misc/URLClassPath.java Changeset: 9f9dac5a9e74 Author: lancea Date: 2013-02-22 09:29 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/9f9dac5a9e74 8008716: address typo in CallableStatement javadocs Reviewed-by: chegar ! src/share/classes/java/sql/CallableStatement.java Changeset: 8d8a35ac7d40 Author: lancea Date: 2013-02-22 09:58 -0500 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/8d8a35ac7d40 Merge Changeset: 6f9b3e216b01 Author: darcy Date: 2013-02-23 13:32 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/6f9b3e216b01 6556996: (ann spec) SuppressWarnings strings should be documented Reviewed-by: mduigou, chegar, abuckley ! src/share/classes/java/lang/Deprecated.java ! src/share/classes/java/lang/Override.java ! src/share/classes/java/lang/SafeVarargs.java ! src/share/classes/java/lang/SuppressWarnings.java ! src/share/classes/java/lang/annotation/Inherited.java ! src/share/classes/java/lang/annotation/Retention.java ! src/share/classes/java/lang/annotation/Target.java Changeset: 7fb897fa297f Author: wmdietl Date: 2013-02-23 18:01 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/jdk/rev/7fb897fa297f Automated merge with http://hg.openjdk.java.net/jdk8/tl/jdk ! .hgtags From wdietl at gmail.com Sat Feb 23 19:17:20 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sun, 24 Feb 2013 03:17:20 +0000 Subject: hg: type-annotations/type-annotations/langtools: Fix for lazy constant values: only attach a type annotation once, not for each lazy evaluation. Message-ID: <20130224031729.2188347DB9@hg.openjdk.java.net> Changeset: 09b9ea06bc9a Author: wmdietl Date: 2013-02-23 19:15 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/09b9ea06bc9a Fix for lazy constant values: only attach a type annotation once, not for each lazy evaluation. ! src/share/classes/com/sun/tools/javac/comp/Attr.java ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java From wdietl at gmail.com Sat Feb 23 19:23:58 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sat, 23 Feb 2013 19:23:58 -0800 Subject: Type annotations in static initializers In-Reply-To: References: <51258DA1.5090809@oracle.com> <5126AB87.9020607@oracle.com> Message-ID: Jon, Steve, all, after spending some time with my dear friend System.out.println it looks to me as if the MethodSymbol used for Attribution doesn't get used anywhere else. I've now introduced two new fields in ClassSymbol to store init and clinit type annotations. I've also re-shuffled type annotations from the field symbol to either the constructors or a clinit method. Have a look here: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/168d80958b13 I have some basic tests in typeAnnotations/referenceinfos/Initializers.java but as mentioned before, a different kind of testing would be needed for this. Also, I fixed a bug with lazy constant value attribution and I think now no type annotation with UNKNOWN position should reach the classwriter. This interaction should also be tested more extensively. All comments and failing tests very welcome. Cheers, cu, WMD. On Thu, Feb 21, 2013 at 5:58 PM, Werner Dietl wrote: > Thanks for that clarification, Alex! > The current implementation takes the "smallest enclosing class, field, > method, or Code structure" part to apply to the source level and then > puts annotations from the initializer on the field. > I agree that this behavior should be changed and will do it together > with init/clinit re-shuffling. > > Steve/SQE, please think about how to test for correct behavior. It > would be great if you could make failing test cases for this that I > will then work on fixing. > > Thanks, > cu, WMD. > > On Thu, Feb 21, 2013 at 4:19 PM, Alex Buckley wrote: >> An annotation on a field declaration was traditionally stored as an >> attribute of the field_info structure. The JSR 308 spec reuses that behavior >> for an annotation on a field type. >> >> But this is moot because the Test class has no annotations on the >> declaration or type of field f. The Test class has an annotation on a type >> in an expression. Then, the germane line from the 308 spec is: >> >> "A type annotation is stored in a Runtime[In]visibleTypeAnnotations >> attribute on the smallest enclosing class, field, method, or Code >> structure." >> >> So @TA must be stored as a target_type==NEW attribute in the Code attribute >> of the class file's method which implements the instance variable >> initializer for f. >> >> If you do that, there is no question over the offset value in >> Runtime[In]VisibleTypeAnnotations. The fact that multiple methods >> exist is not important, because they will all ultimately cause the instance >> variable initializer code for f to be run (JLS 12.5). >> >> Alex >> >> >> On 2/20/2013 11:57 PM, Werner Dietl wrote: >>> >>> Also, to make sure we see the translation equally (Alex, please chime >>> in if the spec says more on this): >>> >>> class Test { >>> Object f = new @TA Object(); >>> } >>> >>> Partial output of javap -v is: >>> >>> java.lang.Object f; >>> descriptor: Ljava/lang/Object; >>> flags: >>> RuntimeInvisibleTypeAnnotations: >>> 0: #8(): NEW, offset=5 >>> >>> Test(); >>> descriptor: ()V >>> flags: >>> Code: >>> stack=3, locals=2, args_size=1 >>> 0: aload_0 >>> 1: invokespecial #1 // Method >>> java/lang/Object."":()V >>> 4: aload_0 >>> 5: new #2 // class java/lang/Object >>> 8: dup >>> 9: invokespecial #1 // Method >>> java/lang/Object."":()V >>> 12: putfield #3 // Field >>> f:Ljava/lang/Object; >>> >>> So the NEW is stored with the field and at the correct offset for the >>> "new" instruction. >>> I looked at this with multiple constructors and, also considering the >>> logic of normalizeDefs, this should be correct - all constructors will >>> be generated with the same prefix for field initializers and the >>> bytecode offset is valid. >>> >>> However, if a constructor calls a "this" constructor, as in: >>> >>> class Test { >>> Object f = new @TA Object(); >>> >>> Test() {} >>> Test(int x) { this(); } >>> } >>> >>> This code still attaches @TA to field "f" with offset 5. However, now >>> this offset is only valid in the first constructor, not in the second, >>> which is: >>> >>> Test(int); >>> descriptor: (I)V >>> flags: >>> Code: >>> stack=1, locals=2, args_size=2 >>> 0: aload_0 >>> 1: invokespecial #4 // Method "":()V >>> 4: return >>> >>> Is this the intended logic, i.e. should type annotations on fields >>> give the offset to the "initial constructors" (which is a term I found >>> in Gen - I'm not sure whether there is a JLS term for this)? >>> Or is this not the intended behavior? >>> >>> For instance initializers, all type annotations from their bodies >>> should appear on all initial constructors. >>> >>> And for class initializers, all type annotations from their bodies >>> should appear on the clinit symbol. >>> >>> Does all of this sound correct? >>> >>> Thanks, >>> cu, WMD. >>> >>> >>> On Wed, Feb 20, 2013 at 7:59 PM, Jonathan Gibbons >>> wrote: >>>> >>>> On 02/18/2013 05:23 PM, Werner Dietl wrote: >>>>> >>>>> >>>>> Jon, all, >>>>> >>>>> I just noticed that type annotations in a static initializer block are >>>>> not stored in bytecode. >>>>> Take this example: >>>>> >>>>> class Test { >>>>> static { >>>>> Object o = new @TA Object(); >>>>> } >>>>> } >>>>> >>>>> Attr.visitBlock correctly attributes the annotation and in the end >>>>> localEnv.info.scope.owner contains the @TA annotation. >>>>> The owner.toString() gives "Test" and is of kind STATIC_INIT. >>>>> >>>>> However, in >>>>> com.sun.tools.javac.jvm.ClassWriter.writeMethod(MethodSymbol) >>>>> I later see a MethodSymbol for "()" of kind STATIC_INIT. >>>>> This symbol no longer contains the type annotations and therefore >>>>> nothing gets written to bytecode. >>>>> >>>>> Can somebody point me to the place where the MethodSymbol from Attr is >>>>> re-written into the MethodSymbol that ends up in the ClassWriter? >>>>> I spent some time looking through the code but didn't find this. >>>>> Maybe type annotations should be copied over whenever one symbol is >>>>> re-written into another one? >>>>> >>>>> Thanks for any hints! >>>>> cu, WMD. >>>>> >>>> >>>> In general, this sort of work is done in Lower. However, in this case, >>>> a search on Names.clinit shows nothing there. But in Gen, you can find >>>> this code: >>>> >>>> // If there are class initializers, create a method >>>> // that contains them as its body. >>>> if (clinitCode.length() != 0) { >>>> MethodSymbol clinit = new MethodSymbol( >>>> STATIC | (c.flags() & STRICTFP), >>>> names.clinit, >>>> new MethodType( >>>> List.nil(), syms.voidType, >>>> List.nil(), syms.methodClass), >>>> c); >>>> c.members().enter(clinit); >>>> List clinitStats = clinitCode.toList(); >>>> JCBlock block = make.at(clinitStats.head.pos()).Block(0, >>>> clinitStats); >>>> block.endpos = TreeInfo.endPos(clinitStats.last()); >>>> methodDefs.append(make.MethodDef(clinit, block)); >>>> } >>>> >>>> -- Jon >>> >>> >>> >>> >> > > > > -- > http://www.google.com/profiles/wdietl -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Sun Feb 24 13:09:06 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sun, 24 Feb 2013 13:09:06 -0800 Subject: some new bugs In-Reply-To: References: <5128245A.8040701@oracle.com> <51282603.1080202@oracle.com> Message-ID: I just pushed fixes for the first two issues. I didn't add your test cases - I assume you/Jon will add them. Thanks for discovering these bugs! cu, WMD. On Fri, Feb 22, 2013 at 6:25 PM, Werner Dietl wrote: > We previously agreed that Joel will look into the tests that only fail > for repeated type annotations. > > cu, WMD. > > On Fri, Feb 22, 2013 at 6:14 PM, Steve Sides wrote: >> yep. >> >> I had entered an earlier one, >> 8008182 - Repeated type-annotation on type arg in method reference not >> written to class file >> and I'm wondering is that last one is related. >> >> -steve >> >> >> On 2/22/2013 6:09 PM, Werner Dietl wrote: >> >> Thanks for these tests! >> I'll work on fixing them in the type-annotations repository ASAP. >> >> cu, WMD. >> >> On Fri, Feb 22, 2013 at 6:07 PM, Steve Sides wrote: >> >> Hi Werner, >> I have been looking at type-annotations in anonymous and inner classes. >> I have a few new bugs. They are showing yet in bugs.sun.com, but they should >> by tomorrow(?). >> Only the first one is a jtreg test. The other 2 are part of a larger test >> with some classfile checking, but I >> put the sample code here so you can javac,javap it. >> >> -steve >> >> 8008751 - Type Annotation on array level in nested class of anonymous class >> results in NPE at >> com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.resolveFrame(TypeAnnotations.java:792) >> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >> - - - - - - - - >> /* >> * @test >> * @summary type-annotation on array level in nested class results in NPE >> * @bug 8008751 >> */ >> import java.lang.annotation.*; >> import static java.lang.annotation.RetentionPolicy.*; >> import static java.lang.annotation.ElementType.*; >> import java.util.List; >> >> class T8008751 { >> Object mtest( T8008751 t){ return null; } >> Object mmtest( T8008751 t){ return null; } >> public void test() { >> mtest( new T8008751() { >> class InnerAnon { >> @A("ok") String s = (@A("ok") String)( new @A("ok") >> Object()); >> @A("ok") Object @A("NPE")[] [] ia_sa1 = null; >> } >> // If not instanciated, no crash. >> InnerAnon IA = new InnerAnon(); >> }); >> } >> } >> @Retention(RUNTIME) @Target(TYPE_USE) @interface A { String value(); } >> >> >> 8008762 - Type annotation on inner class in anonymous class show up as >> regular type annotations >> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >> - - - - - - - - >> import java.lang.annotation.*; >> import static java.lang.annotation.RetentionPolicy.*; >> import static java.lang.annotation.ElementType.*; >> >> class Test1 { // Test1.class >> @A @B String data = "test"; >> @A @B String m(){ return null; }; >> Object mtest( Test1 t){ return null; } >> public void test() { >> mtest( new Test1() { // Test1$1.class >> @A @B String a_data = "test"; >> @A @B String a_m(){ return null; }; >> class InnerAnon { // Test1$1$InnerAnon.class >> @A @B String ai_data = "test"; >> @A @B String ai_m(){ return null; }; >> } >> InnerAnon IA = new InnerAnon(); >> }); >> } >> } >> >> @Retention(RUNTIME) @Target(TYPE_USE) @interface A { } >> @Retention(CLASS) @Target(TYPE_USE) @interface B { } >> >> >> 8008769 - Repeated type-annotations on type parameter of local variable are >> not written to classfile. >> 8<- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >> - - - - - - - - >> import java.lang.annotation.*; >> import static java.lang.annotation.RetentionPolicy.*; >> import static java.lang.annotation.ElementType.*; >> >> class Test { >> Test<@A @A @A String> t = new Test<>(); //ok >> >> public void test() { >> Test<@B String> t1 = new Test<>(); //ok >> Test<@A @A @A String> t2 = new Test<>(); //not ok >> } >> } >> >> @Target(TYPE_USE) @Repeatable( AC.class ) @interface A { } >> @Target(TYPE_USE) @interface AC { A[] value(); } >> @Target(TYPE_USE) @Repeatable( BC.class ) @interface B { } >> @Target(TYPE_USE) @interface BC { B[] value(); } >> >> >> >> >> > > > > -- > http://www.google.com/profiles/wdietl -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Sun Feb 24 13:07:33 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Sun, 24 Feb 2013 21:07:33 +0000 Subject: hg: type-annotations/type-annotations/langtools: 2 new changesets Message-ID: <20130224210742.E9DC147DF6@hg.openjdk.java.net> Changeset: 4e9f487137b9 Author: wmdietl Date: 2013-02-23 23:09 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/4e9f487137b9 T8008751: type-annotation on array level in nested class results in NPE. This seems to happen during a deferred Attr. Guard against NPEs. Is there a nicer way to check for deferred Attr and stop work sooner? ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java Changeset: de1519daf492 Author: wmdietl Date: 2013-02-24 13:06 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/de1519daf492 8008762: Type annotation on inner class in anonymous class show up as regular annotations. Fixed by visiting classes that are nested within anonymous classes, once just the signature and once the whole class. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java From wdietl at gmail.com Sun Feb 24 17:24:17 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 25 Feb 2013 01:24:17 +0000 Subject: hg: type-annotations/type-annotations/langtools: 4 new changesets Message-ID: <20130225012429.AB92B47DFA@hg.openjdk.java.net> Changeset: d92cbf4c1699 Author: wmdietl Date: 2013-02-24 16:34 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/d92cbf4c1699 Clean up imports and whitespace. Use unannotatedType in a comparison. ! src/share/classes/com/sun/tools/javac/code/Type.java ! src/share/classes/com/sun/tools/javac/code/Types.java Changeset: 152b6d2ea573 Author: wmdietl Date: 2013-02-24 16:35 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/152b6d2ea573 Correctly separate class/interface for anonymous classes. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java Changeset: ccbe7ffdd867 Author: jjg Date: 2013-02-24 11:36 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/ccbe7ffdd867 7112427: The doclet needs to be able to generate JavaFX documentation. Reviewed-by: jjg Contributed-by: jan.valenta at oracle.com ! src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/LinkInfoImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java + src/share/classes/com/sun/tools/doclets/formats/html/PropertyWriterImpl.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/formats/html/markup/HtmlWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties ! src/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/PropertyWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/WriterFactory.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/ClassBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PropertyBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties + src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BasePropertyTaglet.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ExpertTaglet.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/PropertyGetterTaglet.java + src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/PropertySetterTaglet.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletWriter.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java + test/com/sun/javadoc/testJavaFX/C.java + test/com/sun/javadoc/testJavaFX/D.java + test/com/sun/javadoc/testJavaFX/TestJavaFX.java ! test/com/sun/javadoc/testLambdaFeature/TestLambdaFeature.java Changeset: 443ada8123b3 Author: wmdietl Date: 2013-02-24 17:22 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/443ada8123b3 Automated merge with http://hg.openjdk.java.net/jdk8/tl/langtools ! src/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java ! src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java ! src/share/classes/com/sun/tools/doclets/formats/html/LinkInfoImpl.java ! src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml ! src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java - src/share/classes/javax/lang/model/type/AnnotatedType.java From wdietl at gmail.com Sun Feb 24 18:17:46 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sun, 24 Feb 2013 18:17:46 -0800 Subject: RuntimeVisibleTypeAnnotations should be a Code attribute, not a Method attribute Message-ID: Jon, all, Eric Bruneton mentions on the spec-comments list that RuntimeVisibleTypeAnnotations should be a Code attribute, not a Method attribute: http://mail.openjdk.java.net/pipermail/type-annotations-spec-comments/2013-February/000021.html How can I very whether this is the case or not? I looked at: com.sun.tools.classfile.ClassWriter.writeMethod(Method) com.sun.tools.classfile.Code_attribute.attributes com.sun.tools.classfile.RuntimeInvisibleTypeAnnotations_attribute but I don't see where a decision between Code and Method is made... both have attributes and I don't see where RuntimeInvisibleTypeAnnotations_attribute is put in one or the other. Before I spend more time in debugging, do you know where this happens? Thanks, cu, WMD. -- http://www.google.com/profiles/wdietl From jonathan.gibbons at oracle.com Sun Feb 24 18:48:22 2013 From: jonathan.gibbons at oracle.com (Jonathan Gibbons) Date: Sun, 24 Feb 2013 18:48:22 -0800 Subject: RuntimeVisibleTypeAnnotations should be a Code attribute, not a Method attribute In-Reply-To: References: Message-ID: <512AD0F6.4000903@oracle.com> On 02/24/2013 06:17 PM, Werner Dietl wrote: > Jon, all, > > Eric Bruneton mentions on the spec-comments list that > RuntimeVisibleTypeAnnotations should be a Code attribute, not a Method > attribute: > > http://mail.openjdk.java.net/pipermail/type-annotations-spec-comments/2013-February/000021.html > > How can I very whether this is the case or not? > > I looked at: > > com.sun.tools.classfile.ClassWriter.writeMethod(Method) > com.sun.tools.classfile.Code_attribute.attributes > com.sun.tools.classfile.RuntimeInvisibleTypeAnnotations_attribute > > but I don't see where a decision between Code and Method is made... > both have attributes and I don't see where > RuntimeInvisibleTypeAnnotations_attribute is put in one or the other. > Before I spend more time in debugging, do you know where this happens? > > Thanks, > cu, WMD. > com.sun.tools.classfile is a simple library underpinning javap, and does not enforce any validity constraints. The decision where to put annotations attributes is made in javac. Start in Names.java to find RuntimeVisibleTypeAnnotations (c. line 280) then track from there to javac.jvm.ClassWriter in writeTypeAnnotations, then to writeMemberAttrs (line 635). -- Jon From wdietl at gmail.com Sun Feb 24 20:09:33 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Mon, 25 Feb 2013 04:09:33 +0000 Subject: hg: type-annotations/type-annotations/langtools: Put "local" type annotations into the Code attribute, not the Method attribute. Message-ID: <20130225040939.5E1F647E06@hg.openjdk.java.net> Changeset: 98f69da5024e Author: wmdietl Date: 2013-02-24 20:09 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/98f69da5024e Put "local" type annotations into the Code attribute, not the Method attribute. ! src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java ! test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java From wdietl at gmail.com Sun Feb 24 20:13:57 2013 From: wdietl at gmail.com (Werner Dietl) Date: Sun, 24 Feb 2013 20:13:57 -0800 Subject: RuntimeVisibleTypeAnnotations should be a Code attribute, not a Method attribute In-Reply-To: <512AD0F6.4000903@oracle.com> References: <512AD0F6.4000903@oracle.com> Message-ID: Thanks for the quick reply, Jon! That was all the necessary info. I pushed this change: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/98f69da5024e Note how now an annotation on a return type and on a local variable looks like this in javap: Code: stack=1, locals=1, args_size=0 0: aconst_null 1: astore_0 2: invokedynamic #2, 0 // InvokeDynamic #0:lambda$:()Ljava/lang/Runnable; 7: areturn LineNumberTable: line 155: 0 line 156: 2 RuntimeInvisibleTypeAnnotations: 0: #16(): LOCAL_VARIABLE, {start_pc=2, length=6, index=0} RuntimeInvisibleTypeAnnotations: 0: #23(): METHOD_RETURN That is, there are two separate Attribute sections, first for the Code, then for the Method. It would be great if somebody could verify I do this according to the specification. Steve/SQE, I updated the referenceinfos tests, in particular: langtools/test/tools/javac/annotations/typeAnnotations/referenceinfos/ReferenceInfoUtil.java I didn't update all the javac/classfile and javap tests for this. In particular: langtools/test/tools/javap/typeAnnotations/NewArray.java would benefit from reusing logic from langtools/test/tools/javac/annotations/typeAnnotations/classfile/ClassfileTestHelper.java That later class needs to be adapted to also look in Code attributes. Could you make a patch for type-annotations that I can integrate? Thanks, cu, WMD. On Sun, Feb 24, 2013 at 6:48 PM, Jonathan Gibbons wrote: > On 02/24/2013 06:17 PM, Werner Dietl wrote: >> >> Jon, all, >> >> Eric Bruneton mentions on the spec-comments list that >> RuntimeVisibleTypeAnnotations should be a Code attribute, not a Method >> attribute: >> >> >> http://mail.openjdk.java.net/pipermail/type-annotations-spec-comments/2013-February/000021.html >> >> How can I very whether this is the case or not? >> >> I looked at: >> >> com.sun.tools.classfile.ClassWriter.writeMethod(Method) >> com.sun.tools.classfile.Code_attribute.attributes >> com.sun.tools.classfile.RuntimeInvisibleTypeAnnotations_attribute >> >> but I don't see where a decision between Code and Method is made... >> both have attributes and I don't see where >> RuntimeInvisibleTypeAnnotations_attribute is put in one or the other. >> Before I spend more time in debugging, do you know where this happens? >> >> Thanks, >> cu, WMD. >> > > com.sun.tools.classfile is a simple library underpinning javap, and does not > enforce any validity constraints. > > The decision where to put annotations attributes is made in javac. > Start in Names.java to find RuntimeVisibleTypeAnnotations (c. line 280) > then track from there to javac.jvm.ClassWriter in writeTypeAnnotations, > then to writeMemberAttrs (line 635). > > -- Jon > -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Mon Feb 25 00:20:04 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 25 Feb 2013 00:20:04 -0800 Subject: RI status update Message-ID: Over the past week I've: - moved type annotations from field initializers to the constructors / clinit methods - added handling for class and instance initializers - separate type and declaration annotations for anonymous classes - fixed the two bugs found by Steve - moved method body type annotations to the Code attribute My list for this coming week: - After integration with the Checker Framework I uncovered a problem with attribution of lazy constant values. I will look at this (again) and fix or write up the issues. - Finally look at type annotations in lambda expressions - I hope something similar to the class/instance initializer solution will work. - Resolve issues with when type annotations on nested types are allowed. - See whether Jon/Bhavesh run into any trouble with javadoc. - See whether Steve or anyone else finds an issue. cu, WMD. -- http://www.google.com/profiles/wdietl From steve.sides at oracle.com Mon Feb 25 11:03:28 2013 From: steve.sides at oracle.com (Steve Sides) Date: Mon, 25 Feb 2013 11:03:28 -0800 Subject: AssertionError at com.sun.tools.javac.code.Type$AnnotatedType. Message-ID: <512BB580.70403@oracle.com> Hi Werner, I was just running the test with the lates t-a build to update tests and came across a crash. It's in type-annotations and not yet tl/langtools. import java.lang.annotation.*; import static java.lang.annotation.RetentionPolicy.*; import static java.lang.annotation.ElementType.*; class Test1 { Object mtest( Test1 t){ return null; } public void test() { mtest( new Test1() { @A @B String odata1 = "test"; }); } } @Target({TYPE_USE,FIELD}) @interface A { } @Target({TYPE_USE}) @interface B { } /* An exception has occurred in the compiler (1.8.0-ea). Please file a bug at the Java Developer Connection (http://java.sun.com/webapps/bugreport) after checking the Bug Parade for duplicates. Include your program and the following diagnostic in your report. Thank you. java.lang.AssertionError: Can't annotate already annotated type: (@A :: java.lang.String); adding: @A, at B at com.sun.tools.javac.util.Assert.error(Assert.java:133) at com.sun.tools.javac.util.Assert.check(Assert.java:94) at com.sun.tools.javac.code.Type$AnnotatedType.(Type.java:1590) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions$1.visitAnnotatedType(TypeAnnotations.java:513) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions$1.visitAnnotatedType(TypeAnnotations.java:492) at com.sun.tools.javac.code.Type$AnnotatedType.accept(Type.java:1627) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.typeWithAnnotations(TypeAnnotations.java:572) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.typeWithAnnotations(TypeAnnotations.java:456) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.separateAnnotationsKinds(TypeAnnotations.java:286) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitVarDef(TypeAnnotations.java:1033) at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:828) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitClassDef(TypeAnnotations.java:943) at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitNewClass(TypeAnnotations.java:1124) at com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1491) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) at com.sun.tools.javac.tree.TreeScanner.visitApply(TreeScanner.java:199) at com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1440) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) at com.sun.tools.javac.tree.TreeScanner.visitExec(TreeScanner.java:174) at com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1271) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitBlock(TypeAnnotations.java:1072) at com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:884) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitMethodDef(TypeAnnotations.java:1010) at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:771) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitClassDef(TypeAnnotations.java:943) at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686) at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) at com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) at com.sun.tools.javac.code.TypeAnnotations.organizeTypeAnnotationsBodies(TypeAnnotations.java:105) at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4161) at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4039) at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:3973) at com.sun.tools.javac.comp.Attr.attrib(Attr.java:3947) at com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1256) at com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:909) at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:868) at com.sun.tools.javac.main.Main.compile(Main.java:517) at com.sun.tools.javac.main.Main.compile(Main.java:376) at com.sun.tools.javac.main.Main.compile(Main.java:365) at com.sun.tools.javac.main.Main.compile(Main.java:356) at com.sun.tools.javac.Main.compile(Main.java:77) at com.sun.tools.javac.Main.main(Main.java:62) */ From steve.sides at oracle.com Mon Feb 25 11:09:32 2013 From: steve.sides at oracle.com (Steve Sides) Date: Mon, 25 Feb 2013 11:09:32 -0800 Subject: AssertionError at com.sun.tools.javac.code.Type$AnnotatedType. In-Reply-To: <512BB580.70403@oracle.com> References: <512BB580.70403@oracle.com> Message-ID: <512BB6EC.4050702@oracle.com> The test case is a little simpler even. The AssertionError occurs just using @A. class Test1 { Object mtest( Test1 t){ return null; } public void test() { mtest( new Test1() { @A String odata1 = "test"; }); } } @Target({TYPE_USE,FIELD}) @interface A { } On 2/25/2013 11:03 AM, Steve Sides wrote: > Hi Werner, > I was just running the test with the lates t-a build to update tests > and came across a crash. > It's in type-annotations and not yet tl/langtools. > > import java.lang.annotation.*; > import static java.lang.annotation.RetentionPolicy.*; > import static java.lang.annotation.ElementType.*; > > class Test1 { > Object mtest( Test1 t){ return null; } > public void test() { > mtest( new Test1() { > @A @B String odata1 = "test"; > }); > } > } > > @Target({TYPE_USE,FIELD}) @interface A { } > @Target({TYPE_USE}) @interface B { } > > /* > An exception has occurred in the compiler (1.8.0-ea). Please file a > bug at the Java Developer Connection > (http://java.sun.com/webapps/bugreport) after checking the Bug Parade > for duplicates. Include your program and the following diagnostic in > your report. Thank you. > java.lang.AssertionError: Can't annotate already annotated type: (@A > :: java.lang.String); adding: @A, at B > at com.sun.tools.javac.util.Assert.error(Assert.java:133) > at com.sun.tools.javac.util.Assert.check(Assert.java:94) > at > com.sun.tools.javac.code.Type$AnnotatedType.(Type.java:1590) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions$1.visitAnnotatedType(TypeAnnotations.java:513) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions$1.visitAnnotatedType(TypeAnnotations.java:492) > at > com.sun.tools.javac.code.Type$AnnotatedType.accept(Type.java:1627) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.typeWithAnnotations(TypeAnnotations.java:572) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.typeWithAnnotations(TypeAnnotations.java:456) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.separateAnnotationsKinds(TypeAnnotations.java:286) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitVarDef(TypeAnnotations.java:1033) > at > com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:828) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitClassDef(TypeAnnotations.java:943) > at > com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitNewClass(TypeAnnotations.java:1124) > at > com.sun.tools.javac.tree.JCTree$JCNewClass.accept(JCTree.java:1491) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) > at > com.sun.tools.javac.tree.TreeScanner.visitApply(TreeScanner.java:199) > at > com.sun.tools.javac.tree.JCTree$JCMethodInvocation.accept(JCTree.java:1440) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) > at > com.sun.tools.javac.tree.TreeScanner.visitExec(TreeScanner.java:174) > at > com.sun.tools.javac.tree.JCTree$JCExpressionStatement.accept(JCTree.java:1271) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitBlock(TypeAnnotations.java:1072) > at > com.sun.tools.javac.tree.JCTree$JCBlock.accept(JCTree.java:884) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitMethodDef(TypeAnnotations.java:1010) > at > com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:771) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:57) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitClassDef(TypeAnnotations.java:943) > at > com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:686) > at com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) > at > com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.scan(TypeAnnotations.java:232) > at > com.sun.tools.javac.code.TypeAnnotations.organizeTypeAnnotationsBodies(TypeAnnotations.java:105) > at com.sun.tools.javac.comp.Attr.attribClassBody(Attr.java:4161) > at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:4039) > at com.sun.tools.javac.comp.Attr.attribClass(Attr.java:3973) > at com.sun.tools.javac.comp.Attr.attrib(Attr.java:3947) > at > com.sun.tools.javac.main.JavaCompiler.attribute(JavaCompiler.java:1256) > at > com.sun.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:909) > at > com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:868) > at com.sun.tools.javac.main.Main.compile(Main.java:517) > at com.sun.tools.javac.main.Main.compile(Main.java:376) > at com.sun.tools.javac.main.Main.compile(Main.java:365) > at com.sun.tools.javac.main.Main.compile(Main.java:356) > at com.sun.tools.javac.Main.compile(Main.java:77) > at com.sun.tools.javac.Main.main(Main.java:62) > > */ > From steve.sides at oracle.com Mon Feb 25 17:26:37 2013 From: steve.sides at oracle.com (Steve Sides) Date: Mon, 25 Feb 2013 17:26:37 -0800 Subject: changes for annotations in code attribute Message-ID: <512C0F4D.7000002@oracle.com> Hi Werner, Here are changes for the typeAnnotations/classfile tests to look for annotations in the right place: http://cr.openjdk.java.net/~ssides/8008928/ I have another test for anonymous and inner classes (the one that found the last few bugs) but it is a little different and not as easy to rework. It's also sensitive to the AssertionError reported a little earlier today. CombinationsTargetTest2 also has some filtering due to some open bugs including the most recent AssertionError but reworking that test was more doable at the moment. However, the changes enable all the tests include to pass. :) I'd like to get the anon and inner class tests fixed as it might be a good test case for you ongoing and recent changes for type-annotations workspace. -steve From kumar.x.srinivasan at oracle.com Mon Feb 25 17:40:53 2013 From: kumar.x.srinivasan at oracle.com (Kumar Srinivasan) Date: Mon, 25 Feb 2013 17:40:53 -0800 Subject: Need latest design.pdf Message-ID: <512C12A5.9040302@oracle.com> Hello, Can someone please point me to the latest TypeAnnotations specification basically the design.pdf. Thanks in advance for the prompt response as I am stuck on something. Kumar From wdietl at gmail.com Mon Feb 25 17:48:06 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 25 Feb 2013 17:48:06 -0800 Subject: Need latest design.pdf In-Reply-To: <512C12A5.9040302@oracle.com> References: <512C12A5.9040302@oracle.com> Message-ID: Hi Kumar, > Can someone please point me to the latest TypeAnnotations specification > basically the design.pdf. > > Thanks in advance for the prompt response as I am stuck on something. The last release from January 30th, 2013, is here: http://types.cs.washington.edu/jsr308/specification/java-annotation-design.pdf http://types.cs.washington.edu/jsr308/specification/java-annotation-design.html Edits are in the jsr308-langtools repository at: http://code.google.com/p/jsr308-langtools/ cu, WMD. -- http://www.google.com/profiles/wdietl From wdietl at gmail.com Mon Feb 25 17:12:29 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 26 Feb 2013 01:12:29 +0000 Subject: hg: type-annotations/type-annotations/langtools: 3 new changesets Message-ID: <20130226011240.5535447ECC@hg.openjdk.java.net> Changeset: 8ac9188d174b Author: wmdietl Date: 2013-02-25 17:09 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/8ac9188d174b Set type_index for casts that are not on an intersection type to zero. ! src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java Changeset: 9ec2520c8016 Author: wmdietl Date: 2013-02-25 17:10 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/9ec2520c8016 Remove unused import. ! src/share/classes/com/sun/tools/javac/comp/MemberEnter.java Changeset: 141987ea3421 Author: wmdietl Date: 2013-02-25 17:12 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/141987ea3421 Ensure that a TypeCompound is only created once per annotation, preventing duplicates appearing for lazy constant values. ! src/share/classes/com/sun/tools/javac/comp/Annotate.java ! test/tools/javac/annotations/typeAnnotations/failures/LazyConstantValue.java + test/tools/javac/annotations/typeAnnotations/failures/LazyConstantValue.out ! test/tools/javac/annotations/typeAnnotations/referenceinfos/Initializers.java From wdietl at gmail.com Mon Feb 25 21:02:32 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Tue, 26 Feb 2013 05:02:32 +0000 Subject: hg: type-annotations/type-annotations/langtools: langtools_8008928 by Steve Sides: fixes for classfile test cases of type annotations. Message-ID: <20130226050240.1A20C47405@hg.openjdk.java.net> Changeset: 8c7da944ce32 Author: wmdietl Date: 2013-02-25 21:02 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/8c7da944ce32 langtools_8008928 by Steve Sides: fixes for classfile test cases of type annotations. ! test/tools/javac/annotations/typeAnnotations/classfile/ClassfileTestHelper.java ! test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest1.java ! test/tools/javac/annotations/typeAnnotations/classfile/CombinationsTargetTest2.java ! test/tools/javac/annotations/typeAnnotations/classfile/DeadCode.java ! test/tools/javac/annotations/typeAnnotations/classfile/NewTypeArguments.java ! test/tools/javac/annotations/typeAnnotations/classfile/TypeCasts.java ! test/tools/javac/annotations/typeAnnotations/classfile/Wildcards.java From wdietl at gmail.com Mon Feb 25 21:07:44 2013 From: wdietl at gmail.com (Werner Dietl) Date: Mon, 25 Feb 2013 21:07:44 -0800 Subject: changes for annotations in code attribute In-Reply-To: <512C0F4D.7000002@oracle.com> References: <512C0F4D.7000002@oracle.com> Message-ID: Thanks, Steve! I've pushed your changes: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/8c7da944ce32 I still see three javap tests failing: tools/javap/typeAnnotations/NewArray.java: test that all type annotations are present in the classfile tools/javap/typeAnnotations/Presence.java: test that all type annotations are present in the classfile tools/javap/typeAnnotations/TypeCasts.java: test that typecasts annotation are emitted if only the cast expression is optimized away Could you also take a look at those? I think there is some code that could be re-used between the javac and javap tests. Thanks, cu, WMD. On Mon, Feb 25, 2013 at 5:26 PM, Steve Sides wrote: > Hi Werner, > Here are changes for the typeAnnotations/classfile tests to look for > annotations in the right place: > http://cr.openjdk.java.net/~ssides/8008928/ > I have another test for anonymous and inner classes (the one that found the > last few bugs) but it is a little different and not as easy to rework. > It's also sensitive to the AssertionError reported a little earlier today. > CombinationsTargetTest2 also has some filtering due to some open bugs > including the most recent AssertionError but reworking that test was more > doable at the moment. > > However, the changes enable all the tests include to pass. :) > > I'd like to get the anon and inner class tests fixed as it might be a good > test case for you ongoing and recent changes for type-annotations workspace. > > -steve > -- http://www.google.com/profiles/wdietl From steve.sides at oracle.com Mon Feb 25 22:29:30 2013 From: steve.sides at oracle.com (Steve Sides) Date: Mon, 25 Feb 2013 22:29:30 -0800 Subject: changes for annotations in code attribute In-Reply-To: References: <512C0F4D.7000002@oracle.com> Message-ID: <512C564A.5040102@oracle.com> Last I looked (which was a while ago), the javap/typeAnnotations tests were mostly duplicates of the javac ones, only slightly differently implemented, and they weren't truly javap tests. Since then Peter has been writing javap tests. I'll have a look and also have Peter give them a look. With the recent code attribute change, he may need to edit a little anyway. :) thanks, steve On 2/25/2013 9:07 PM, Werner Dietl wrote: > Thanks,teve! > I've pushed your changes: > > http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/8c7da944ce32 > > I still see three javap tests failing: > > tools/javap/typeAnnotations/NewArray.java: test that all type > annotations are present in the classfile > tools/javap/typeAnnotations/Presence.java: test that all type > annotations are present in the classfile > tools/javap/typeAnnotations/TypeCasts.java: test that typecasts > annotation are emitted if only the cast expression is optimized away > > Could you also take a look at those? I think there is some code that > could be re-used between the javac and javap tests. > > Thanks, > cu, WMD. > > On Mon, Feb 25, 2013 at 5:26 PM, Steve Sides wrote: >> Hi Werner, >> Here are changes for the typeAnnotations/classfile tests to look for >> annotations in the right place: >> http://cr.openjdk.java.net/~ssides/8008928/ >> I have another test for anonymous and inner classes (the one that found the >> last few bugs) but it is a little different and not as easy to rework. >> It's also sensitive to the AssertionError reported a little earlier today. >> CombinationsTargetTest2 also has some filtering due to some open bugs >> including the most recent AssertionError but reworking that test was more >> doable at the moment. >> >> However, the changes enable all the tests include to pass. :) >> >> I'd like to get the anon and inner class tests fixed as it might be a good >> test case for you ongoing and recent changes for type-annotations workspace. >> >> -steve >> > > From charlie.wang at oracle.com Mon Feb 25 23:50:39 2013 From: charlie.wang at oracle.com (jun wang) Date: Tue, 26 Feb 2013 15:50:39 +0800 Subject: reflection SQE test In-Reply-To: References: <5110611A.9030608@oracle.com> Message-ID: <512C694F.8000109@oracle.com> Thanks. But the real question is there is no doc for what the returned byte[] stands for. What is returned? Here's an example in java.lang.System.java public byte[] getRawClassTypeAnnotations(Class klass) public byte[] getRawExecutableTypeAnnotations(Executable executable) Regards, Charlie On 2013/2/8 2:54, Joel Borggr?n-Franck wrote: > Hi Charlie, > > There are some methods that are not public, for example the one you mention. You don't need to write a test for those as they aren't part of the API. > > cheers > /Joel > On Feb 5, 2013, at 2:32 AM, Charlie Wang wrote: > >> Hi, >> Sorry for the mass mail. I've created some SQE functional tests for type annotation reflection? I wonder where I should publish them. And I was unable to find descriptions for some new APIs with return type - byte[] (e.g. Class.getExecutableTypeAnnotationBytes(Executable ex)). Could someone kindly direct me to where I can get them? Greatly appreciate your help. >> >> >> Regards, >> Charlie From joe.darcy at oracle.com Tue Feb 26 00:02:59 2013 From: joe.darcy at oracle.com (Joe Darcy) Date: Tue, 26 Feb 2013 00:02:59 -0800 Subject: reflection SQE test In-Reply-To: <512C694F.8000109@oracle.com> References: <5110611A.9030608@oracle.com> <512C694F.8000109@oracle.com> Message-ID: <512C6C33.30104@oracle.com> On 2/25/2013 11:50 PM, jun wang wrote: > Thanks. But the real question is there is no doc for what the returned > byte[] stands for. What is returned? > Here's an example in java.lang.System.java > > public byte[] getRawClassTypeAnnotations(Class klass) > public byte[] getRawExecutableTypeAnnotations(Executable executable) These methods are *not* part of the public API. They do not show up in the javadoc for java.lang.System. They are public methods are a *non-public* class. These are not the methods you are looking to test. -Joe > > > > Regards, > Charlie > > On 2013/2/8 2:54, Joel Borggr?n-Franck wrote: >> Hi Charlie, >> >> There are some methods that are not public, for example the one you >> mention. You don't need to write a test for those as they aren't part >> of the API. >> >> cheers >> /Joel >> On Feb 5, 2013, at 2:32 AM, Charlie Wang >> wrote: >> >>> Hi, >>> Sorry for the mass mail. I've created some SQE functional tests >>> for type annotation reflection? I wonder where I should publish >>> them. And I was unable to find descriptions for some new APIs with >>> return type - byte[] (e.g. >>> Class.getExecutableTypeAnnotationBytes(Executable ex)). Could >>> someone kindly direct me to where I can get them? Greatly appreciate >>> your help. >>> >>> >>> Regards, >>> Charlie > From charlie.wang at oracle.com Tue Feb 26 04:33:28 2013 From: charlie.wang at oracle.com (jun wang) Date: Tue, 26 Feb 2013 20:33:28 +0800 Subject: reflection SQE test In-Reply-To: <512C6C33.30104@oracle.com> References: <5110611A.9030608@oracle.com> <512C694F.8000109@oracle.com> <512C6C33.30104@oracle.com> Message-ID: <512CAB98.1030803@oracle.com> What about this method in java.lang.reflect.ReflectAccess.java? public byte[] getExecutableTypeAnnotationBytes(Executable ex) - Charlie On 2013/2/26 16:02, Joe Darcy wrote: > On 2/25/2013 11:50 PM, jun wang wrote: >> Thanks. But the real question is there is no doc for what the >> returned byte[] stands for. What is returned? >> Here's an example in java.lang.System.java >> >> public byte[] getRawClassTypeAnnotations(Class klass) >> public byte[] getRawExecutableTypeAnnotations(Executable executable) > > These methods are *not* part of the public API. They do not show up in > the javadoc for java.lang.System. They are public methods are a > *non-public* class. > > These are not the methods you are looking to test. > > -Joe > >> >> >> >> Regards, >> Charlie >> >> On 2013/2/8 2:54, Joel Borggr?n-Franck wrote: >>> Hi Charlie, >>> >>> There are some methods that are not public, for example the one you >>> mention. You don't need to write a test for those as they aren't >>> part of the API. >>> >>> cheers >>> /Joel >>> On Feb 5, 2013, at 2:32 AM, Charlie Wang >>> wrote: >>> >>>> Hi, >>>> Sorry for the mass mail. I've created some SQE functional tests >>>> for type annotation reflection? I wonder where I should publish >>>> them. And I was unable to find descriptions for some new APIs with >>>> return type - byte[] (e.g. >>>> Class.getExecutableTypeAnnotationBytes(Executable ex)). Could >>>> someone kindly direct me to where I can get them? Greatly >>>> appreciate your help. >>>> >>>> >>>> Regards, >>>> Charlie >> > From joe.darcy at oracle.com Tue Feb 26 08:44:49 2013 From: joe.darcy at oracle.com (Joe Darcy) Date: Tue, 26 Feb 2013 08:44:49 -0800 Subject: reflection SQE test In-Reply-To: <512CAB98.1030803@oracle.com> References: <5110611A.9030608@oracle.com> <512C694F.8000109@oracle.com> <512C6C33.30104@oracle.com> <512CAB98.1030803@oracle.com> Message-ID: <512CE681.2060104@oracle.com> On 2/26/2013 4:33 AM, jun wang wrote: > What about this method in java.lang.reflect.ReflectAccess.java? > > public byte[] getExecutableTypeAnnotationBytes(Executable ex) Does ReflectAccess have any public API? -Joe > > > > - Charlie > > On 2013/2/26 16:02, Joe Darcy wrote: >> On 2/25/2013 11:50 PM, jun wang wrote: >>> Thanks. But the real question is there is no doc for what the >>> returned byte[] stands for. What is returned? >>> Here's an example in java.lang.System.java >>> >>> public byte[] getRawClassTypeAnnotations(Class klass) >>> public byte[] getRawExecutableTypeAnnotations(Executable executable) >> >> These methods are *not* part of the public API. They do not show up >> in the javadoc for java.lang.System. They are public methods are a >> *non-public* class. >> >> These are not the methods you are looking to test. >> >> -Joe >> >>> >>> >>> >>> Regards, >>> Charlie >>> >>> On 2013/2/8 2:54, Joel Borggr?n-Franck wrote: >>>> Hi Charlie, >>>> >>>> There are some methods that are not public, for example the one you >>>> mention. You don't need to write a test for those as they aren't >>>> part of the API. >>>> >>>> cheers >>>> /Joel >>>> On Feb 5, 2013, at 2:32 AM, Charlie Wang >>>> wrote: >>>> >>>>> Hi, >>>>> Sorry for the mass mail. I've created some SQE functional tests >>>>> for type annotation reflection? I wonder where I should publish >>>>> them. And I was unable to find descriptions for some new APIs with >>>>> return type - byte[] (e.g. >>>>> Class.getExecutableTypeAnnotationBytes(Executable ex)). Could >>>>> someone kindly direct me to where I can get them? Greatly >>>>> appreciate your help. >>>>> >>>>> >>>>> Regards, >>>>> Charlie >>> >> > From joel.franck at oracle.com Tue Feb 26 10:23:19 2013 From: joel.franck at oracle.com (=?iso-8859-1?Q?Joel_Borggr=E9n-Franck?=) Date: Tue, 26 Feb 2013 19:23:19 +0100 Subject: reflection SQE test In-Reply-To: <512CE681.2060104@oracle.com> References: <5110611A.9030608@oracle.com> <512C694F.8000109@oracle.com> <512C6C33.30104@oracle.com> <512CAB98.1030803@oracle.com> <512CE681.2060104@oracle.com> Message-ID: <63086A3A-8754-4F32-8C9C-D7C030E39387@oracle.com> On 26 feb 2013, at 17:44, Joe Darcy wrote: > On 2/26/2013 4:33 AM, jun wang wrote: >> What about this method in java.lang.reflect.ReflectAccess.java? >> >> public byte[] getExecutableTypeAnnotationBytes(Executable ex) > > Does ReflectAccess have any public API? > I don't think so. The API lives in sun/reflect/LangReflectAccess.java and the implementation in a package private class java/lang/reflect/ReflectAccess.java. cheers /Joel From alex.buckley at oracle.com Tue Feb 26 10:46:10 2013 From: alex.buckley at oracle.com (Alex Buckley) Date: Tue, 26 Feb 2013 10:46:10 -0800 Subject: reflection SQE test In-Reply-To: <5110611A.9030608@oracle.com> References: <5110611A.9030608@oracle.com> Message-ID: <512D02F2.5070308@oracle.com> Charlie, There is clearly some confusion about which methods should be tested. Before you do anything else, please send a mail to this list that identifies which core reflection methods you are going to test. Alex On 2/4/2013 5:32 PM, Charlie Wang wrote: > Hi, > Sorry for the mass mail. I've created some SQE functional tests for > type annotation reflection? I wonder where I should publish them. And I > was unable to find descriptions for some new APIs with return type - > byte[] (e.g. Class.getExecutableTypeAnnotationBytes(Executable ex)). > Could someone kindly direct me to where I can get them? Greatly > appreciate your help. > > > Regards, > Charlie From jibing.chen at oracle.com Tue Feb 26 10:59:04 2013 From: jibing.chen at oracle.com (Jibing Chen) Date: Wed, 27 Feb 2013 02:59:04 +0800 Subject: reflection SQE test In-Reply-To: <512D02F2.5070308@oracle.com> References: <5110611A.9030608@oracle.com> <512D02F2.5070308@oracle.com> Message-ID: <512D05F8.2040808@oracle.com> Hi Alex, Yes, Charlie does need help to review which methods should be tested. Here is the table which lists Charlie planed tests: http://wiki.se.oracle.com/display/JPG/JSR+308+-+Type+Annotations+-+Reflection#JSR308-TypeAnnotations-Reflection-FeatureCases%2CTestsandTestCases Could you and other developers help to review and comment it? Thanks, Jibing On 2/27/2013 2:46 AM, Alex Buckley wrote: > Charlie, > > There is clearly some confusion about which methods should be tested. > > Before you do anything else, please send a mail to this list that > identifies which core reflection methods you are going to test. > > Alex > > On 2/4/2013 5:32 PM, Charlie Wang wrote: >> Hi, >> Sorry for the mass mail. I've created some SQE functional tests for >> type annotation reflection? I wonder where I should publish them. And I >> was unable to find descriptions for some new APIs with return type - >> byte[] (e.g. Class.getExecutableTypeAnnotationBytes(Executable ex)). >> Could someone kindly direct me to where I can get them? Greatly >> appreciate your help. >> >> >> Regards, >> Charlie From alex.buckley at oracle.com Tue Feb 26 11:05:10 2013 From: alex.buckley at oracle.com (Alex Buckley) Date: Tue, 26 Feb 2013 11:05:10 -0800 Subject: reflection SQE test In-Reply-To: <512D05F8.2040808@oracle.com> References: <5110611A.9030608@oracle.com> <512D02F2.5070308@oracle.com> <512D05F8.2040808@oracle.com> Message-ID: <512D0766.5020606@oracle.com> Hi Jibing, How are the non-Oracle developers on this list meant to view an internal Oracle wiki? Alex On 2/26/2013 10:59 AM, Jibing Chen wrote: > Hi Alex, > > Yes, Charlie does need help to review which methods should be tested. > > Here is the table which lists Charlie planed tests: > > http://wiki.se.oracle.com/display/JPG/JSR+308+-+Type+Annotations+-+Reflection#JSR308-TypeAnnotations-Reflection-FeatureCases%2CTestsandTestCases > > > Could you and other developers help to review and comment it? > > Thanks, > > Jibing > > On 2/27/2013 2:46 AM, Alex Buckley wrote: >> Charlie, >> >> There is clearly some confusion about which methods should be tested. >> >> Before you do anything else, please send a mail to this list that >> identifies which core reflection methods you are going to test. >> >> Alex >> >> On 2/4/2013 5:32 PM, Charlie Wang wrote: >>> Hi, >>> Sorry for the mass mail. I've created some SQE functional tests for >>> type annotation reflection? I wonder where I should publish them. And I >>> was unable to find descriptions for some new APIs with return type - >>> byte[] (e.g. Class.getExecutableTypeAnnotationBytes(Executable ex)). >>> Could someone kindly direct me to where I can get them? Greatly >>> appreciate your help. >>> >>> >>> Regards, >>> Charlie > From wdietl at gmail.com Thu Feb 28 14:36:43 2013 From: wdietl at gmail.com (wdietl at gmail.com) Date: Thu, 28 Feb 2013 22:36:43 +0000 Subject: hg: type-annotations/type-annotations/langtools: Unify enterAnnotation and enterTypeAnnotation implementations and ensure that both type and attribute are always correctly set. Message-ID: <20130228223653.CC6B4474D3@hg.openjdk.java.net> Changeset: 20cb3559e19c Author: wmdietl Date: 2013-02-28 14:36 -0800 URL: http://hg.openjdk.java.net/type-annotations/type-annotations/langtools/rev/20cb3559e19c Unify enterAnnotation and enterTypeAnnotation implementations and ensure that both type and attribute are always correctly set. ! src/share/classes/com/sun/tools/javac/comp/Annotate.java From steve.sides at oracle.com Thu Feb 28 23:32:32 2013 From: steve.sides at oracle.com (Steve Sides) Date: Thu, 28 Feb 2013 23:32:32 -0800 Subject: fixes to javap/typeAnnotations tests Message-ID: <51305990.8030304@oracle.com> Hi, Here are some changes to the tests in tools/javap/typeAnnotations which allow the failing tests to pass. http://cr.openjdk.java.net/~ssides/8009256/ They are changes for the move of type annotations to the code attributes and a little clean up here and there. The change of the test name in Presence.java to TestPresence was keep it from being overwritten by the other test which use 'Test.java'. I forgot to put it back to 'Test.java' but it's benign. -steve